feat: improve model price error UX with role-aware messages and cleaner UI

- Backend: differentiate error messages for admin vs regular users in price.go
- Backend: include error_code in channel test response for structured error handling
- Frontend: render model_price_error as a styled card in Playground with admin nav button
- Frontend: show inline error details and settings link in channel test modal
- Frontend: parse error codes from both SSE and non-streaming API responses
- i18n: remove redundant "Settings" suffix from setting tab translations (en/fr/ru/ja/vi)
- i18n: update "Group & Model Pricing" translations across all locales
This commit is contained in:
CaIon
2026-04-11 17:19:38 +08:00
parent 040e8c1da8
commit ed7f839911
16 changed files with 224 additions and 84 deletions
+13 -12
View File
@@ -408,7 +408,7 @@
"以下上游数据可能不可信:": "Следующие upstream данные могут быть недостоверными:",
"以下文件解析失败,已忽略:{{list}}": "Не удалось проанализировать следующие файлы, они проигнорированы: {{list}}",
"以及": "а также",
"仪表盘设置": "Настройки панели управления",
"仪表盘设置": "Панель управления",
"价格": "Цена",
"价格摘要": "Сводка цен",
"价格暂时不可用,请稍后重试": "Price temporarily unavailable, please try again later",
@@ -680,7 +680,7 @@
"其他": "Другое",
"其他注册选项": "Другие варианты регистрации",
"其他登录选项": "Другие варианты входа",
"其他设置": "Другие настройки",
"其他设置": "Прочее",
"其他详情": "Другие детали",
"内存 阈值 (%)": "Порог памяти (%)",
"内存使用率超过此值时拒绝请求": "Отклонять запросы, когда использование памяти превышает это значение",
@@ -701,7 +701,7 @@
"分类名称": "Название категории",
"分组": "Группа",
"分组JSON设置": "Group JSON Settings",
"分组与模型定价设置": "Настройки групп и ценообразования моделей",
"分组与模型定价设置": "Группы и цены моделей",
"分组价格": "Цена группы",
"分组倍率": "Коэффициент группы",
"分组倍率设置": "Настройки коэффициента группы",
@@ -1451,7 +1451,7 @@
"思考预算占比": "Доля бюджета на размышления",
"性能指标": "Показатели производительности",
"性能监控": "Мониторинг производительности",
"性能设置": "Настройки производительности",
"性能设置": "Производительность",
"总 GPU 小时": "Total GPU Hours",
"总价:文字价格 {{textPrice}} + 音频价格 {{audioPrice}} = {{symbol}}{{total}}": "Общая цена: цена текста {{textPrice}} + цена аудио {{audioPrice}} = {{symbol}}{{total}}",
"总分配内存": "Общая выделенная память",
@@ -1600,7 +1600,7 @@
"支付方式名称": "Название метода оплаты",
"支付方式类型": "Тип метода оплаты",
"支付渠道": "Платежные каналы",
"支付设置": "Настройки оплаты",
"支付设置": "Оплата",
"支付请求失败": "Запрос на оплату не удался",
"支付金额": "Сумма оплаты",
"支持 Ctrl+V 粘贴图片": "Поддержка Ctrl+V для вставки изображения",
@@ -1999,7 +1999,7 @@
"模型消耗趋势": "Тенденции потребления моделей",
"模型版本": "Версия модели",
"模型的详细描述和基本特性": "Подробное описание и основные характеристики модели",
"模型相关设置": "Настройки, связанные с моделью",
"模型相关设置": "Модели",
"模型社区需要大家的共同维护,如发现数据有误或想贡献新的模型数据,请访问:": "Сообщество моделей требует совместного поддержания всеми. Если вы обнаружили ошибки в данных или хотите внести новые данные о моделях, посетите:",
"模型管理": "Управление моделями",
"模型组": "Группа моделей",
@@ -2012,7 +2012,7 @@
"模型部署": "Model Deployment",
"模型部署服务未启用": "Model deployment service is not enabled",
"模型部署管理": "Model Deployment Management",
"模型部署设置": "Model Deployment Settings",
"模型部署设置": "Развёртывание моделей",
"模型配置": "Конфигурация модели",
"模型重定向": "Перенаправление модели",
"模型重定向里的下列模型尚未添加到“模型”列表,调用时会因为缺少可用模型而失败:": "Следующие модели из перенаправления ещё не добавлены в список «Модели», из-за отсутствия доступных моделей вызовы завершатся ошибкой:",
@@ -2530,7 +2530,7 @@
"系统文档和帮助信息": "Системная документация и справочная информация",
"系统消息": "Системные сообщения",
"系统管理功能": "Функции системного управления",
"系统设置": "Системные настройки",
"系统设置": "Система",
"系统访问令牌": "Токен доступа к системе",
"索引": "Индекс",
"紧凑列表": "Компактный список",
@@ -2559,7 +2559,7 @@
"绘图": "Рисование",
"绘图任务记录": "Записи задач рисования",
"绘图日志": "Журнал рисования",
"绘图设置": "Настройки рисования",
"绘图设置": "Рисование",
"统一的": "Единый",
"统计Tokens": "Статистика токенов",
"统计已重置": "Статистика сброшена",
@@ -2636,7 +2636,7 @@
"聊天区域": "Область чата",
"聊天应用名称": "Название чат-приложения",
"聊天应用名称已存在,请使用其他名称": "Название чат-приложения уже существует, используйте другое название",
"聊天设置": "Настройки чата",
"聊天设置": "Чат",
"聊天配置": "Конфигурация чата",
"聊天链接配置错误,请联系管理员": "Ошибка конфигурации ссылки чата, свяжитесь с администратором",
"联系我们": "Свяжитесь с нами",
@@ -2885,6 +2885,7 @@
"请求参数无效": "Invalid request parameters",
"请求发生错误": "Произошла ошибка запроса",
"请求发生错误: ": "Произошла ошибка запроса: ",
"模型价格未配置": "Цена модели не настроена",
"请求后端接口失败:": "Не удалось запросить внутренний интерфейс:",
"请求失败": "Запрос не удался",
"请求头覆盖": "Переопределение заголовков запроса",
@@ -3162,7 +3163,7 @@
"过期时间不能早于当前时间!": "Время истечения не может быть раньше текущего времени!",
"过期时间快捷设置": "Быстрая настройка времени истечения",
"过期时间格式错误!": "Ошибка формата времени истечения!",
"运营设置": "Операционные настройки",
"运营设置": "Операции",
"运行中": "Running",
"运行命令 (Command)": "Command",
"运行时长": "Runtime Duration",
@@ -3248,7 +3249,7 @@
"通道 ${name} 余额更新成功!": "Баланс канала ${name} успешно обновлен!",
"通道 ${name} 测试成功,模型 ${model} 耗时 ${time.toFixed(2)} 秒。": "Канал ${name} успешно протестирован, модель ${model} заняла ${time.toFixed(2)} секунд.",
"通道 ${name} 测试成功,耗时 ${time.toFixed(2)} 秒。": "Канал ${name} успешно протестирован, заняло ${time.toFixed(2)} секунд.",
"速率限制设置": "Настройки ограничения скорости",
"速率限制设置": "Ограничение скорости",
"逻辑": "Логика",
"邀请": "Приглашение",
"邀请人": "Пригласивший",