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": "中"
}