feat(ui): localize friendly agent errors and surface them as toasts

Thread a translate function through friendlyAgentErrorMessage/
friendlyProjectFailureMessage and move the hard-coded zh-CN error copy
into the i18n locale files (with a zh-CN fallback map). Generation
stream failures now report through a toast via showGenerationError in
addition to setError, so the removed inline .panel-error footer is
gone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-09 09:05:44 +08:00
parent 3eae2beb12
commit 4f2825bb8e
7 changed files with 144 additions and 60 deletions
+20
View File
@@ -462,5 +462,25 @@
"messages.auth.provider_not_ready": "This sign-in service is not configured yet. Please try again later.",
"messages.auth.human_verification_required": "Please complete the security check first.",
"messages.auth.human_verification_failed": "Security check failed. Please verify again and retry.",
"agentError.title.image": "Image generation did not complete",
"agentError.title.partialImage": "Some images did not complete",
"agentError.title.imageAction": "Image processing did not complete",
"agentError.title.textExtraction": "Text extraction did not complete",
"agentError.title.mockupModel": "Mockup model did not complete",
"agentError.title.layerMerge": "Layer merge did not complete",
"agentError.content.partialImageTimeout": "Some images were generated, but the remaining images took too long to return. Successful results were kept, and you can retry only the failed parts.",
"agentError.content.partialImageGeneric": "Some images were generated, but the remaining images failed. Successful results were kept, and you can retry only the failed parts.",
"agentError.content.imageTimeout": "Image generation took too long and did not complete this time. Your canvas was preserved. You can retry directly, or lower the image count/size first.",
"agentError.content.imageTemporary": "The image generation service is temporarily busy. Your canvas was preserved. Please try again later.",
"agentError.content.imageGeneric": "Image generation did not complete. Your canvas was preserved, and you can start generation again.",
"agentError.content.imageActionTimeout": "Image processing took too long and did not complete this time. The original image was preserved. Please try again later.",
"agentError.content.imageActionTemporary": "The image processing service is temporarily busy. The original image was preserved. Please try again later.",
"agentError.content.imageActionGeneric": "Image processing did not complete. The original image was preserved, and you can start processing again.",
"agentError.content.textExtractionTimeout": "Text extraction took too long and did not complete this time. The image state was restored. Please try again later.",
"agentError.content.textExtractionGeneric": "Text extraction did not complete. The image state was restored. Please try again later.",
"agentError.content.mockupModelTimeout": "Mockup model generation took too long and did not complete this time. The original image was preserved. Please try again later.",
"agentError.content.mockupModelGeneric": "Mockup model generation failed. The original image was preserved. Please try again later.",
"agentError.content.layerMergeTimeout": "Layer merge took too long and did not complete this time. The original layers were preserved. Please try again later.",
"agentError.content.layerMergeGeneric": "Layer merge did not complete. The original layers were preserved. Please try again later.",
"localeLabel": "中"
}
+20
View File
@@ -462,5 +462,25 @@
"messages.auth.provider_not_ready": "当前登录服务暂未配置,请稍后重试。",
"messages.auth.human_verification_required": "请先完成人机验证。",
"messages.auth.human_verification_failed": "人机验证失败,请重新验证后再试。",
"agentError.title.image": "图片生成没有完成",
"agentError.title.partialImage": "图片生成没有全部完成",
"agentError.title.imageAction": "图片处理没有完成",
"agentError.title.textExtraction": "文字提取没有完成",
"agentError.title.mockupModel": "Mockup 模型没有完成",
"agentError.title.layerMerge": "图层合并没有完成",
"agentError.content.partialImageTimeout": "部分图片已经生成完成,剩余图片耗时较久没有返回。已保留成功结果,可以只重试失败的部分。",
"agentError.content.partialImageGeneric": "部分图片已经生成完成,剩余图片没有成功生成。已保留成功结果,可以只重试失败的部分。",
"agentError.content.imageTimeout": "图片生成耗时较久,这次没有成功完成。画布内容已保留,可以直接重试,或先降低图片数量/尺寸后再生成。",
"agentError.content.imageTemporary": "图片生成服务暂时繁忙。画布内容已保留,可以稍后重试。",
"agentError.content.imageGeneric": "图片生成没有成功完成。画布内容已保留,可以重新发起生成。",
"agentError.content.imageActionTimeout": "图片处理耗时较久,这次没有成功完成。原图已保留,可以稍后重试。",
"agentError.content.imageActionTemporary": "图片处理服务暂时繁忙。原图已保留,可以稍后重试。",
"agentError.content.imageActionGeneric": "图片处理没有成功完成。原图已保留,可以重新发起处理。",
"agentError.content.textExtractionTimeout": "文字提取耗时较久,这次没有成功完成。图片状态已恢复,可以稍后重试。",
"agentError.content.textExtractionGeneric": "文字提取没有成功完成。图片状态已恢复,可以稍后重试。",
"agentError.content.mockupModelTimeout": "Mockup 模型生成耗时较久,这次没有成功完成。原图已保留,可以稍后重试。",
"agentError.content.mockupModelGeneric": "Mockup 模型没有成功生成。原图已保留,可以稍后重试。",
"agentError.content.layerMergeTimeout": "图层合并耗时较久,这次没有成功完成。原图层已保留,可以稍后重试。",
"agentError.content.layerMergeGeneric": "图层合并没有成功完成。原图层已保留,可以稍后重试。",
"localeLabel": "EN"
}