diff --git a/frontend/src/i18n/__tests__/openaiFastPolicyLocales.spec.ts b/frontend/src/i18n/__tests__/openaiFastPolicyLocales.spec.ts index 7fd550c1a..805d356c9 100644 --- a/frontend/src/i18n/__tests__/openaiFastPolicyLocales.spec.ts +++ b/frontend/src/i18n/__tests__/openaiFastPolicyLocales.spec.ts @@ -27,4 +27,30 @@ describe('OpenAI Fast/Flex policy locale keys', () => { removeUser: 'Remove user' }) }) + + it('describes target and other-model actions without whitelist terminology', () => { + expect(zh.admin.settings.openaiFastPolicy).toMatchObject({ + tierAll: '全部 tier 值', + modelWhitelist: '目标模型', + fallbackAction: '其他模型处理方式', + summaryTargetModels: '目标模型', + summaryOtherModels: '其他模型' + }) + expect(zh.admin.settings.openaiFastPolicy.modelWhitelistHint).toContain( + '留空时“处理方式”应用于全部模型' + ) + expect(zh.admin.settings.openaiFastPolicy.modelWhitelistHint).not.toContain('白名单') + + expect(en.admin.settings.openaiFastPolicy).toMatchObject({ + tierAll: 'All tier values', + modelWhitelist: 'Target models', + fallbackAction: 'Other models action', + summaryTargetModels: 'Target models', + summaryOtherModels: 'Other models' + }) + expect(en.admin.settings.openaiFastPolicy.modelWhitelistHint).toContain( + 'Leave empty to apply Action to all models' + ) + expect(en.admin.settings.openaiFastPolicy.modelWhitelistHint).not.toContain('whitelist') + }) }) diff --git a/frontend/src/i18n/locales/en/admin/settings.ts b/frontend/src/i18n/locales/en/admin/settings.ts index b20e2ebee..9aff76d25 100644 --- a/frontend/src/i18n/locales/en/admin/settings.ts +++ b/frontend/src/i18n/locales/en/admin/settings.ts @@ -1173,7 +1173,7 @@ export default { addRule: 'Add rule', saveHint: 'Saved together with system settings (click the global Save button at the bottom of the page).', serviceTier: 'service_tier match', - tierAll: 'All tiers', + tierAll: 'All tier values', tierPriority: 'priority (fast)', tierFlex: 'flex', action: 'Action', @@ -1196,13 +1196,22 @@ export default { errorMessage: 'Error message', errorMessagePlaceholder: 'Custom error message when blocked', errorMessageHint: 'Leave empty for the default message.', - modelWhitelist: 'Model whitelist', - modelWhitelistHint: 'Leave empty to apply to all models. Supports exact match and wildcard prefix (e.g., gpt-5.5*).', - modelPatternPlaceholder: 'e.g., gpt-5.5 or gpt-5.5*', - addModelPattern: 'Add model pattern', - fallbackAction: 'Fallback action', - fallbackActionHint: 'Action for models not matching the whitelist.', - fallbackErrorMessagePlaceholder: 'Custom error message when non-whitelisted models are blocked' + modelWhitelist: 'Target models', + modelWhitelistHint: 'Models in this list use Action; models outside it use Other models action. Leave empty to apply Action to all models. Supports exact matches and wildcard prefixes (e.g., gpt-5.6*).', + modelPatternPlaceholder: 'e.g., gpt-5.6-sol or gpt-5.6*', + addModelPattern: 'Add target model', + fallbackAction: 'Other models action', + fallbackActionHint: 'Applies only to models outside the target list.', + fallbackErrorMessagePlaceholder: 'Custom error message when other models are blocked', + summaryTargetModels: 'Target models', + summaryAllModels: 'All models', + summaryOtherModels: 'Other models', + summaryAction: { + pass: 'Pass', + filter: 'Filter', + block: 'Block', + force_priority: 'Force priority' + } }, wechatConnect: { title: 'WeChat Connect', diff --git a/frontend/src/i18n/locales/zh/admin/settings.ts b/frontend/src/i18n/locales/zh/admin/settings.ts index 3967f25ed..82a932e56 100644 --- a/frontend/src/i18n/locales/zh/admin/settings.ts +++ b/frontend/src/i18n/locales/zh/admin/settings.ts @@ -1167,7 +1167,7 @@ export default { addRule: '新增规则', saveHint: '保存时随系统设置一起提交(点击页面底部「保存」按钮)。', serviceTier: 'service_tier 匹配', - tierAll: '全部 tier', + tierAll: '全部 tier 值', tierPriority: 'priority(fast)', tierFlex: 'flex', action: '处理方式', @@ -1190,13 +1190,22 @@ export default { errorMessage: '错误消息', errorMessagePlaceholder: '拦截时返回的自定义错误消息', errorMessageHint: '留空则使用默认错误消息。', - modelWhitelist: '模型白名单', - modelWhitelistHint: '留空表示对所有模型生效;支持精确匹配与通配符(如 gpt-5.5*)。', - modelPatternPlaceholder: '例如: gpt-5.5 或 gpt-5.5*', - addModelPattern: '添加模型规则', - fallbackAction: '未匹配模型处理方式', - fallbackActionHint: '当请求模型不在白名单中时的处理方式。', - fallbackErrorMessagePlaceholder: '未匹配模型被拦截时返回的自定义错误消息' + modelWhitelist: '目标模型', + modelWhitelistHint: '列表内模型使用“处理方式”,列表外模型使用“其他模型处理方式”。留空时“处理方式”应用于全部模型。支持精确匹配与前缀通配符(如 gpt-5.6*)。', + modelPatternPlaceholder: '例如: gpt-5.6-sol 或 gpt-5.6*', + addModelPattern: '添加目标模型', + fallbackAction: '其他模型处理方式', + fallbackActionHint: '仅应用于目标列表之外的模型。', + fallbackErrorMessagePlaceholder: '其他模型被拦截时返回的自定义错误消息', + summaryTargetModels: '目标模型', + summaryAllModels: '全部模型', + summaryOtherModels: '其他模型', + summaryAction: { + pass: '透传', + filter: '过滤', + block: '拦截', + force_priority: '强制 priority' + } }, wechatConnect: { title: '微信登录', diff --git a/frontend/src/views/admin/SettingsView.vue b/frontend/src/views/admin/SettingsView.vue index b153865ff..bb4d021b2 100644 --- a/frontend/src/views/admin/SettingsView.vue +++ b/frontend/src/views/admin/SettingsView.vue @@ -1128,6 +1128,47 @@ +
+
{{ t("admin.settings.openaiFastPolicy.modelWhitelistHint") }} @@ -1298,11 +1348,9 @@