From 4f42161294f8faa184bc58ab310fc2f691fba94f Mon Sep 17 00:00:00 2001
From: "alan.cl" <1165243776@qq.com>
Date: Tue, 10 Mar 2026 21:26:38 +0800
Subject: [PATCH] fix: skill i18n
---
web/locales/en/common.ts | 18 ++++++++
web/locales/zh/common.ts | 18 ++++++++
web/pages/construct/skills/index.tsx | 62 +++++++++++++---------------
3 files changed, 64 insertions(+), 34 deletions(-)
diff --git a/web/locales/en/common.ts b/web/locales/en/common.ts
index 1ac924e75..ef3c00ea1 100644
--- a/web/locales/en/common.ts
+++ b/web/locales/en/common.ts
@@ -459,4 +459,22 @@ export const CommonEn = {
app_management: 'App Management',
awel_workflow: 'AWEL Workflow',
prompts: 'Prompts',
+ // Skills page
+ skills_page_subtitle: 'Pre-packaged and reusable best practices and tools for your agents',
+ skills_search_placeholder: 'Search skills',
+ skills_official_tag: 'Official',
+ skills_add_btn: 'Add',
+ skills_upload_skill: 'Upload Skill',
+ skills_upload_skill_desc: 'Upload .zip, .skill or folder',
+ skills_empty: 'No skills available',
+ skills_detail_tag: 'Skill',
+ skills_try_btn: 'Try it',
+ skills_select_file_tip: 'Select a file to view content',
+ skills_loading: 'Loading...',
+ skills_upload_modal_title: 'Upload Skill',
+ skills_upload_dragger_text: 'Click or drag files here',
+ skills_upload_format_tip: 'Supports .zip, .skill, .md, .yaml, .json formats',
+ skills_upload_success: 'Successfully uploaded {{count}} skill(s)',
+ skills_file_invalid: 'Invalid file',
+ skills_upload_failed: 'Upload failed',
} as const;
diff --git a/web/locales/zh/common.ts b/web/locales/zh/common.ts
index 9783413b2..79c0289f1 100644
--- a/web/locales/zh/common.ts
+++ b/web/locales/zh/common.ts
@@ -462,4 +462,22 @@ export const CommonZh: Resources['translation'] = {
app_management: '应用管理',
awel_workflow: 'AWEL 工作流',
prompts: '提示词',
+ // Skills page
+ skills_page_subtitle: '为您的智能体提供预封装且可重复的最佳实践与工具',
+ skills_search_placeholder: '搜索技能',
+ skills_official_tag: '官方',
+ skills_add_btn: '添加',
+ skills_upload_skill: '上传技能',
+ skills_upload_skill_desc: '上传 .zip、.skill 或文件夹',
+ skills_empty: '暂无技能',
+ skills_detail_tag: '技能',
+ skills_try_btn: '试用一下',
+ skills_select_file_tip: '选择文件查看内容',
+ skills_loading: '加载中...',
+ skills_upload_modal_title: '上传技能',
+ skills_upload_dragger_text: '点击或拖拽文件到此处',
+ skills_upload_format_tip: '支持 .zip、.skill、.md、.yaml、.json 格式',
+ skills_upload_success: '成功上传 {{count}} 个技能',
+ skills_file_invalid: '文件无效',
+ skills_upload_failed: '上传失败',
} as const;
diff --git a/web/pages/construct/skills/index.tsx b/web/pages/construct/skills/index.tsx
index 241e9bf16..04b27ac97 100644
--- a/web/pages/construct/skills/index.tsx
+++ b/web/pages/construct/skills/index.tsx
@@ -210,7 +210,7 @@ function Skills() {
for (const f of uploadFileList) {
const rawFile = f.originFileObj;
if (!rawFile) {
- message.error(`${f.name}: \u6587\u4EF6\u65E0\u6548`);
+ message.error(`${f.name}: ${t('skills_file_invalid')}`);
continue;
}
const formData = new FormData();
@@ -224,21 +224,21 @@ function Skills() {
if (json?.success) {
successCount++;
} else {
- message.error(`${f.name}: ${json?.err_msg || '\u4E0A\u4F20\u5931\u8D25'}`);
+ message.error(`${f.name}: ${json?.err_msg || t('skills_upload_failed')}`);
}
} catch (err) {
console.error('[Skills] Upload error:', err);
- message.error(`${f.name}: \u4E0A\u4F20\u5931\u8D25`);
+ message.error(`${f.name}: ${t('skills_upload_failed')}`);
}
}
setUploading(false);
if (successCount > 0) {
- message.success(`\u6210\u529F\u4E0A\u4F20 ${successCount} \u4E2A\u6280\u80FD`);
+ message.success(t('skills_upload_success', { count: successCount }));
setUploadOpen(false);
setUploadFileList([]);
refreshList();
}
- }, [uploadFileList, refreshList]);
+ }, [uploadFileList, refreshList, t]);
const uploadProps: UploadProps = {
multiple: true,
@@ -253,7 +253,7 @@ function Skills() {
originFileObj: file as any,
};
setUploadFileList(prev => [...prev, entry]);
- return false; // prevent auto upload
+ return false;
},
onRemove: file => {
setUploadFileList(prev => prev.filter(f => f.uid !== file.uid));
@@ -266,8 +266,8 @@ function Skills() {
icon:
- { - '\u4E3A\u60A8\u7684\u667A\u80FD\u4F53\u63D0\u4F9B\u9884\u5C01\u88C5\u4E14\u53EF\u91CD\u590D\u7684\u6700\u4F73\u5B9E\u8DF5\u4E0E\u5DE5\u5177' - } -
+{t('skills_page_subtitle')}
- {skill.description || '\u6682\u65E0\u63CF\u8FF0'} + {skill.description || t('no_data')}
{/* Footer */} @@ -356,13 +352,13 @@ function Skills() {
{'\u70B9\u51FB\u6216\u62D6\u62FD\u6587\u4EF6\u5230\u6B64\u5904'}
-- {'\u652F\u6301 .zip\u3001.skill\u3001.md\u3001.yaml\u3001.json \u683C\u5F0F'} -
+{t('skills_upload_dragger_text')}
+{t('skills_upload_format_tip')}