-
-
Notifications
You must be signed in to change notification settings - Fork 2k
i18n(SubAgentPage): complete internationalization for subagent orchestration page #5400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -8,11 +8,14 @@ | |||||
| "refresh": "刷新", | ||||||
| "save": "保存", | ||||||
| "add": "新增 SubAgent", | ||||||
| "delete": "删除" | ||||||
| "delete": "删除", | ||||||
| "close": "关闭" | ||||||
| }, | ||||||
| "switches": { | ||||||
| "enable": "启用 SubAgent 编排", | ||||||
| "dedupe": "主 LLM 去重重复工具(与 SubAgent 重叠的工具将被隐藏)" | ||||||
| "enableHint": "启用子代理功能", | ||||||
| "dedupe": "主 LLM 去重重复工具(与 SubAgent 重叠的工具将被隐藏)", | ||||||
| "dedupeHint": "从主代理中移除重复工具" | ||||||
| }, | ||||||
| "description": { | ||||||
| "disabled": "不启动:SubAgent 关闭;主 LLM 按 persona 规则挂载工具(默认全部),并直接调用。", | ||||||
|
|
@@ -39,6 +42,7 @@ | |||||
| "providerHint": "留空表示跟随全局默认 provider。", | ||||||
| "personaLabel": "选择人格设定", | ||||||
| "personaHint": "SubAgent 将直接继承所选 Persona 的系统设定与工具。在人格设定页管理和新建人格。", | ||||||
| "personaPreview": "人格预览", | ||||||
| "descriptionLabel": "对主 LLM 的描述(用于决定是否 handoff)", | ||||||
| "descriptionHint": "这段会作为 transfer_to_* 工具的描述给主 LLM 看,建议简短明确。" | ||||||
| }, | ||||||
|
|
@@ -50,6 +54,13 @@ | |||||
| "nameDuplicate": "SubAgent 名称重复:{name}", | ||||||
| "personaMissing": "SubAgent {name} 未选择 Persona", | ||||||
| "saveSuccess": "保存成功", | ||||||
| "saveFailed": "保存失败" | ||||||
| "saveFailed": "保存失败", | ||||||
| "nameRequired": "名称必填", | ||||||
| "namePattern": "仅支持小写字母、数字和下划线" | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To provide a more accurate validation error message to the user (as mentioned in my comment on
Suggested change
|
||||||
| }, | ||||||
| "empty": { | ||||||
| "title": "未配置 SubAgent", | ||||||
| "subtitle": "添加一个新的子代理以开始", | ||||||
| "action": "创建第一个 Agent" | ||||||
| } | ||||||
| } | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -62,7 +62,7 @@ | |
| <template #label> | ||
| <div class="d-flex flex-column"> | ||
| <span class="text-body-2 font-weight-medium">{{ tm('switches.enable') }}</span> | ||
| <span class="text-caption text-medium-emphasis">Enable sub-agent functionality</span> | ||
| <span class="text-caption text-medium-emphasis">{{ tm('switches.enableHint') }}</span> | ||
| </div> | ||
| </template> | ||
| </v-switch> | ||
|
|
@@ -80,7 +80,7 @@ | |
| <template #label> | ||
| <div class="d-flex flex-column"> | ||
| <span class="text-body-2 font-weight-medium">{{ tm('switches.dedupe') }}</span> | ||
| <span class="text-caption text-medium-emphasis">Remove duplicate tools from main agent</span> | ||
| <span class="text-caption text-medium-emphasis">{{ tm('switches.dedupeHint') }}</span> | ||
| </div> | ||
| </template> | ||
| </v-switch> | ||
|
|
@@ -166,7 +166,7 @@ | |
| <v-text-field | ||
| v-model="agent.name" | ||
| :label="tm('form.nameLabel')" | ||
| :rules="[v => !!v || 'Name is required', v => /^[a-z][a-z0-9_]*$/.test(v) || 'Lowercase letters, numbers, underscore only']" | ||
| :rules="[v => !!v || tm('messages.nameRequired'), v => /^[a-z][a-z0-9_]*$/.test(v) || tm('messages.namePattern')]" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The validation regex here is inconsistent with the one used in Additionally, the error message from |
||
| variant="outlined" | ||
| density="comfortable" | ||
| hide-details="auto" | ||
|
|
@@ -215,7 +215,7 @@ | |
| <v-col cols="12" md="6"> | ||
| <div class="h-100"> | ||
| <div class="text-caption font-weight-bold text-medium-emphasis mb-2 ml-1"> | ||
| PERSONA PREVIEW | ||
| {{ tm('cards.personaPreview') }} | ||
| </div> | ||
| <PersonaQuickPreview | ||
| :model-value="agent.persona_id" | ||
|
|
@@ -231,17 +231,17 @@ | |
| <!-- Empty State --> | ||
| <div v-if="cfg.agents.length === 0" class="d-flex flex-column align-center justify-center py-12 text-medium-emphasis"> | ||
| <v-icon icon="mdi-robot-off" size="64" class="mb-4 opacity-50" /> | ||
| <div class="text-h6">No Agents Configured</div> | ||
| <div class="text-body-2 mb-4">Add a new sub-agent to get started</div> | ||
| <div class="text-h6">{{ tm('empty.title') }}</div> | ||
| <div class="text-body-2 mb-4">{{ tm('empty.subtitle') }}</div> | ||
| <v-btn color="primary" variant="tonal" @click="addAgent"> | ||
| Create First Agent | ||
| {{ tm('empty.action') }} | ||
| </v-btn> | ||
| </div> | ||
|
|
||
| <v-snackbar v-model="snackbar.show" :color="snackbar.color" timeout="3000" location="top"> | ||
| {{ snackbar.message }} | ||
| <template #actions> | ||
| <v-btn variant="text" @click="snackbar.show = false">Close</v-btn> | ||
| <v-btn variant="text" @click="snackbar.show = false">{{ tm('actions.close') }}</v-btn> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The fallback Since the |
||
| </template> | ||
|
sourcery-ai[bot] marked this conversation as resolved.
|
||
| </v-snackbar> | ||
| </div> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To provide a more accurate validation error message to the user (as mentioned in my comment on
SubAgentPage.vue), this string should be updated to include all constraints: starting with a letter, allowed characters, and max length.