chore: update frontend branding copy
This commit is contained in:
Vendored
+2
-2
@@ -38,7 +38,7 @@ import TopUp from './pages/TopUp';
|
||||
import Log from './pages/Log';
|
||||
import Chat from './pages/Chat';
|
||||
import Chat2Link from './pages/Chat2Link';
|
||||
import Midjourney from './pages/Midjourney';
|
||||
import MjProxy from './pages/Midjourney';
|
||||
import Pricing from './pages/Pricing';
|
||||
import Task from './pages/Task';
|
||||
import ModelPage from './pages/Model';
|
||||
@@ -300,7 +300,7 @@ function App() {
|
||||
element={
|
||||
<PrivateRoute>
|
||||
<Suspense fallback={<Loading></Loading>} key={location.pathname}>
|
||||
<Midjourney />
|
||||
<MjProxy />
|
||||
</Suspense>
|
||||
</PrivateRoute>
|
||||
}
|
||||
|
||||
+1
-1
@@ -140,7 +140,7 @@ const FooterBar = () => {
|
||||
rel='noopener noreferrer'
|
||||
className='!text-semi-color-text-1'
|
||||
>
|
||||
Midjourney-Proxy
|
||||
MjProxy
|
||||
</a>
|
||||
<a
|
||||
href='https://github.com/Calcium-Ion/new-api-key-tool'
|
||||
|
||||
@@ -50,9 +50,9 @@ const MjLogsActions = ({
|
||||
<Text>
|
||||
{isAdminUser && showBanner
|
||||
? t(
|
||||
'当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。',
|
||||
'当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。',
|
||||
)
|
||||
: t('Midjourney 任务记录')}
|
||||
: t('MjProxy 任务记录')}
|
||||
</Text>
|
||||
</div>
|
||||
</Skeleton>
|
||||
|
||||
+2
-2
@@ -22,12 +22,12 @@ export const CHANNEL_OPTIONS = [
|
||||
{
|
||||
value: 2,
|
||||
color: 'light-blue',
|
||||
label: 'Midjourney Proxy',
|
||||
label: 'MjProxy',
|
||||
},
|
||||
{
|
||||
value: 5,
|
||||
color: 'blue',
|
||||
label: 'Midjourney Proxy Plus',
|
||||
label: 'MjProxyPlus',
|
||||
},
|
||||
{
|
||||
value: 36,
|
||||
|
||||
Vendored
+6
-6
@@ -39,7 +39,7 @@ import {
|
||||
Minimax,
|
||||
Wenxin,
|
||||
Spark,
|
||||
Midjourney,
|
||||
Midjourney as MjProxyIcon,
|
||||
Hunyuan,
|
||||
Cohere,
|
||||
Cloudflare,
|
||||
@@ -254,8 +254,8 @@ export const getModelCategories = (() => {
|
||||
filter: (model) => model.model_name.toLowerCase().includes('spark'),
|
||||
},
|
||||
midjourney: {
|
||||
label: 'Midjourney',
|
||||
icon: <Midjourney />,
|
||||
label: 'MjProxy',
|
||||
icon: <MjProxyIcon />,
|
||||
filter: (model) => model.model_name.toLowerCase().includes('mj_'),
|
||||
},
|
||||
tencent: {
|
||||
@@ -336,9 +336,9 @@ export function getChannelIcon(channelType) {
|
||||
case 3: // Azure OpenAI
|
||||
case 57: // Codex
|
||||
return <OpenAI size={iconSize} />;
|
||||
case 2: // Midjourney Proxy
|
||||
case 5: // Midjourney Proxy Plus
|
||||
return <Midjourney size={iconSize} />;
|
||||
case 2: // MjProxy
|
||||
case 5: // MjProxyPlus
|
||||
return <MjProxyIcon size={iconSize} />;
|
||||
case 36: // Suno API
|
||||
return <Suno size={iconSize} />;
|
||||
case 4: // Ollama
|
||||
|
||||
Vendored
+2
-2
@@ -192,7 +192,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "LinuxDO ID",
|
||||
"Logo 图片地址": "Logo image address",
|
||||
"Midjourney 任务记录": "Midjourney Task Records",
|
||||
"MjProxy 任务记录": "MjProxy Task Records",
|
||||
"MIT许可证": "MIT License",
|
||||
"New API项目仓库地址:": "New API project repository address: ",
|
||||
"NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。": "NewAPI does not pass the incoming request's User-Agent to upstream channels by default; this condition is only used to identify clients accessing this site.",
|
||||
@@ -1508,7 +1508,7 @@
|
||||
"当前旧格式不是 JSON 对象,无法追加模板": "Current legacy format is not a JSON object, cannot append template",
|
||||
"当前时间": "Current time",
|
||||
"当前未启用,需要时再打开即可。": "This field is currently disabled. Enable it when needed.",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "Current Midjourney callback is not enabled, some projects may not be able to obtain drawing results, which can be enabled in the operation settings.",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "Current MjProxy callback is not enabled, some projects may not be able to obtain drawing results, which can be enabled in the operation settings.",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "Current group: {{group}}, ratio: {{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "The current model list is the longest one among all channel model lists under this tag, not the union of all channels. Please note that this may cause some channel models to be lost.",
|
||||
"当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。": "This model currently has both per-request pricing and ratio-based pricing. Saving will overwrite them according to the current billing mode.",
|
||||
|
||||
Vendored
+2
-2
@@ -193,7 +193,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "ID LinuxDO",
|
||||
"Logo 图片地址": "Adresse de l'image du logo",
|
||||
"Midjourney 任务记录": "Tâches Midjourney",
|
||||
"MjProxy 任务记录": "Tâches MjProxy",
|
||||
"MIT许可证": "Licence MIT",
|
||||
"New API项目仓库地址:": "Adresse du référentiel du projet New API : ",
|
||||
"NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。": "NewAPI ne transmet pas le User-Agent de la requête entrante aux canaux en amont par défaut ; cette condition sert uniquement à identifier les clients accédant à ce site.",
|
||||
@@ -1514,7 +1514,7 @@
|
||||
"当前旧格式不是 JSON 对象,无法追加模板": "L'ancien format actuel n'est pas un objet JSON, impossible d'ajouter le modèle",
|
||||
"当前时间": "Heure actuelle",
|
||||
"当前未启用,需要时再打开即可。": "Ce champ est actuellement désactivé. Activez-le si nécessaire.",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "Le rappel Midjourney actuel n'est pas activé, certains projets peuvent ne pas être en mesure d'obtenir des résultats de dessin, qui peuvent être activés dans les paramètres de fonctionnement.",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "Le rappel MjProxy actuel n'est pas activé, certains projets peuvent ne pas être en mesure d'obtenir des résultats de dessin, qui peuvent être activés dans les paramètres de fonctionnement.",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "Groupe actuel : {{group}}, ratio : {{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "La liste de modèles actuelle est la plus longue liste de modèles de canal sous cette étiquette, pas l'union de tous les canaux. Veuillez noter que cela peut entraîner la perte de certains modèles de canal.",
|
||||
"当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。": "Ce modèle possède actuellement à la fois une tarification par requête et une configuration par ratio. L'enregistrement écrasera selon le mode de facturation actuel.",
|
||||
|
||||
Vendored
+2
-2
@@ -187,7 +187,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "LinuxDO ID",
|
||||
"Logo 图片地址": "ロゴ画像URL",
|
||||
"Midjourney 任务记录": "Midjourneyタスク履歴",
|
||||
"MjProxy 任务记录": "MjProxyタスク履歴",
|
||||
"MIT许可证": "MITライセンス",
|
||||
"New API项目仓库地址:": "New APIプロジェクトリポジトリ:",
|
||||
"NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。": "NewAPIはデフォルトでは入力リクエストのUser-Agentを上流チャネルにパススルーしません。この条件はこのサイトにアクセスするクライアントの識別にのみ使用されます。",
|
||||
@@ -1485,7 +1485,7 @@
|
||||
"当前旧格式不是 JSON 对象,无法追加模板": "現在のレガシー形式はJSONオブジェクトではないため、テンプレートを追加できません",
|
||||
"当前时间": "現在時刻",
|
||||
"当前未启用,需要时再打开即可。": "この項目は現在無効です。必要なときに有効にしてください。",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "現在、Midjourneyコールバックが有効になっていないため、一部のプロジェクトで画像生成結果を取得できない場合があります。この機能は運用設定で有効にできます",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "現在、MjProxyコールバックが有効になっていないため、一部のプロジェクトで画像生成結果を取得できない場合があります。この機能は運用設定で有効にできます",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "現在表示中のグループ:{{group}}、倍率:{{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "現在のモデルリストは、このタグに属するチャネルの中で最も長いモデルリストを採用しており、すべてのチャネルのモデルの和集合ではありません。これにより一部のチャネルのモデルがリストに含まれない可能性があるため、ご注意ください。",
|
||||
"当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。": "このモデルには従量価格と倍率設定が同時に存在しています。保存すると現在の課金方式に従って上書きされます。",
|
||||
|
||||
Vendored
+2
-2
@@ -197,7 +197,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "ID LinuxDO",
|
||||
"Logo 图片地址": "Адрес изображения логотипа",
|
||||
"Midjourney 任务记录": "Записи задач Midjourney",
|
||||
"MjProxy 任务记录": "Записи задач MjProxy",
|
||||
"MIT许可证": "Лицензия MIT",
|
||||
"New API项目仓库地址:": "Адрес репозитория проекта New API:",
|
||||
"NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。": "NewAPI по умолчанию не передаёт User-Agent входящего запроса в вышестоящие каналы; это условие используется только для идентификации клиентов, обращающихся к данному сайту.",
|
||||
@@ -1532,7 +1532,7 @@
|
||||
"当前旧格式不是 JSON 对象,无法追加模板": "Текущий устаревший формат не является JSON-объектом, невозможно добавить шаблон",
|
||||
"当前时间": "Текущее время",
|
||||
"当前未启用,需要时再打开即可。": "Это поле сейчас отключено. Включите его при необходимости.",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "В настоящее время обратный вызов Midjourney отключен, некоторые проекты могут не получить результаты рисования, можно включить в настройках эксплуатации.",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "В настоящее время обратный вызов MjProxy отключен, некоторые проекты могут не получить результаты рисования, можно включить в настройках эксплуатации.",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "Текущая просматриваемая группа: {{group}}, коэффициент: {{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "Текущий список моделей является самым длинным списком моделей всех каналов под этой меткой, а не объединением всех каналов, обратите внимание, что это может привести к потере моделей некоторых каналов.",
|
||||
"当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。": "У этой модели одновременно задана цена за запрос и конфигурация коэффициентов. При сохранении данные будут перезаписаны согласно текущему режиму тарификации.",
|
||||
|
||||
Vendored
+2
-2
@@ -187,7 +187,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "LinuxDO ID",
|
||||
"Logo 图片地址": "Địa chỉ hình ảnh Logo",
|
||||
"Midjourney 任务记录": "Hồ sơ tác vụ Midjourney",
|
||||
"MjProxy 任务记录": "Hồ sơ tác vụ MjProxy",
|
||||
"MIT许可证": "Giấy phép MIT",
|
||||
"New API项目仓库地址:": "Địa chỉ kho dự án New API: ",
|
||||
"NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。": "NewAPI mặc định không truyền User-Agent của yêu cầu đến kênh upstream; điều kiện này chỉ dùng để nhận diện client truy cập trang web này.",
|
||||
@@ -1486,7 +1486,7 @@
|
||||
"当前旧格式不是 JSON 对象,无法追加模板": "Định dạng cũ hiện tại không phải đối tượng JSON, không thể thêm mẫu",
|
||||
"当前时间": "Thời gian hiện tại",
|
||||
"当前未启用,需要时再打开即可。": "Trường này hiện đang tắt. Hãy bật khi cần.",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "Gọi lại Midjourney hiện tại chưa được bật, một số dự án có thể không nhận được kết quả vẽ, có thể bật trong cài đặt vận hành.",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "Gọi lại MjProxy hiện tại chưa được bật, một số dự án có thể không nhận được kết quả vẽ, có thể bật trong cài đặt vận hành.",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "Nhóm hiện tại: {{group}}, tỷ lệ: {{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "Danh sách mô hình hiện tại là danh sách dài nhất trong số tất cả các danh sách mô hình kênh dưới thẻ này, không phải là hợp nhất của tất cả các kênh. Xin lưu ý rằng điều này có thể khiến một số mô hình kênh bị mất.",
|
||||
"当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。": "Mô hình này hiện đồng thời có giá theo lượt gọi và cấu hình tỷ lệ. Khi lưu, dữ liệu sẽ bị ghi đè theo chế độ tính phí hiện tại.",
|
||||
|
||||
+2
-2
@@ -179,7 +179,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "LinuxDO ID",
|
||||
"Logo 图片地址": "Logo 图片地址",
|
||||
"Midjourney 任务记录": "Midjourney 任务记录",
|
||||
"MjProxy 任务记录": "MjProxy 任务记录",
|
||||
"MIT许可证": "MIT许可证",
|
||||
"New API项目仓库地址:": "New API项目仓库地址:",
|
||||
"NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。": "NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。",
|
||||
@@ -1470,7 +1470,7 @@
|
||||
"当前旧格式不是 JSON 对象,无法追加模板": "当前旧格式不是 JSON 对象,无法追加模板",
|
||||
"当前时间": "当前时间",
|
||||
"当前未启用,需要时再打开即可。": "当前未启用,需要时再打开即可。",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "当前查看的分组为:{{group}},倍率为:{{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。",
|
||||
"当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。": "当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。",
|
||||
|
||||
+2
-2
@@ -185,7 +185,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "LinuxDO ID",
|
||||
"Logo 图片地址": "Logo 圖片位址",
|
||||
"Midjourney 任务记录": "Midjourney 任務記錄",
|
||||
"MjProxy 任务记录": "MjProxy 任務記錄",
|
||||
"MIT许可证": "MIT許可證",
|
||||
"New API项目仓库地址:": "New API項目倉庫位址:",
|
||||
"NewAPI 默认不会将入口请求的 User-Agent 透传到上游渠道;该条件仅用于识别访问本站点的客户端。": "",
|
||||
@@ -1480,7 +1480,7 @@
|
||||
"当前旧格式不是 JSON 对象,无法追加模板": "",
|
||||
"当前时间": "當前時間",
|
||||
"当前未启用,需要时再打开即可。": "目前未啟用,需要時再開啟即可。",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "當前未開啟Midjourney回調,部分項目可能無法獲得繪圖結果,可在運營設定中開啟。",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "當前未開啟MjProxy回調,部分項目可能無法獲得繪圖結果,可在運營設定中開啟。",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "當前查看的分組為:{{group}},倍率為:{{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "當前模型列表為該標籤下所有管道模型列表最長的一個,並非所有管道的並集,請注意可能導致某些管道模型丟失。",
|
||||
"当前模型同时存在按次价格和倍率配置,保存时会按当前计费方式覆盖。": "目前模型同時存在按次價格與倍率配置,儲存時會依目前計費方式覆蓋。",
|
||||
|
||||
Vendored
+2
-2
@@ -119,7 +119,7 @@
|
||||
"LinuxDO": "LinuxDO",
|
||||
"LinuxDO ID": "LinuxDO ID",
|
||||
"Logo 图片地址": "Logo 图片地址",
|
||||
"Midjourney 任务记录": "Midjourney 任务记录",
|
||||
"MjProxy 任务记录": "MjProxy 任务记录",
|
||||
"MIT许可证": "MIT许可证",
|
||||
"New API项目仓库地址:": "New API项目仓库地址:",
|
||||
"OIDC": "OIDC",
|
||||
@@ -1006,7 +1006,7 @@
|
||||
"当前分组为 auto,会自动选择最优分组,当一个组不可用时自动降级到下一个组(熔断机制)": "当前分组为 auto,会自动选择最优分组,当一个组不可用时自动降级到下一个组(熔断机制)",
|
||||
"当前剩余": "当前剩余",
|
||||
"当前时间": "当前时间",
|
||||
"当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "当前未开启Midjourney回调,部分项目可能无法获得绘图结果,可在运营设置中开启。",
|
||||
"当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。": "当前未开启 MjProxy 回调,部分项目可能无法获得绘图结果,可在运营设置中开启。",
|
||||
"当前查看的分组为:{{group}},倍率为:{{ratio}}": "当前查看的分组为:{{group}},倍率为:{{ratio}}",
|
||||
"当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。": "当前模型列表为该标签下所有渠道模型列表最长的一个,并非所有渠道的并集,请注意可能导致某些渠道模型丢失。",
|
||||
"当前版本": "当前版本",
|
||||
|
||||
Vendored
+2
-2
@@ -56,7 +56,7 @@ import {
|
||||
Qingyan,
|
||||
DeepSeek,
|
||||
Qwen,
|
||||
Midjourney,
|
||||
Midjourney as MjProxyIcon,
|
||||
Grok,
|
||||
AzureAI,
|
||||
Hunyuan,
|
||||
@@ -309,7 +309,7 @@ const Home = () => {
|
||||
<Qwen.Color size={40} />
|
||||
</div>
|
||||
<div className='w-8 h-8 sm:w-10 sm:h-10 md:w-12 md:h-12 flex items-center justify-center'>
|
||||
<Midjourney size={40} />
|
||||
<MjProxyIcon size={40} />
|
||||
</div>
|
||||
<div className='w-8 h-8 sm:w-10 sm:h-10 md:w-12 md:h-12 flex items-center justify-center'>
|
||||
<Grok size={40} />
|
||||
|
||||
+2
-2
@@ -20,10 +20,10 @@ For commercial licensing, please contact support@quantumnous.com
|
||||
import React from 'react';
|
||||
import MjLogsTable from '../../components/table/mj-logs';
|
||||
|
||||
const Midjourney = () => (
|
||||
const MjProxy = () => (
|
||||
<div className='mt-[60px] px-2'>
|
||||
<MjLogsTable />
|
||||
</div>
|
||||
);
|
||||
|
||||
export default Midjourney;
|
||||
export default MjProxy;
|
||||
|
||||
Vendored
+2
-3
@@ -58,9 +58,8 @@ const BRAND_AND_LITERAL_KEYS = new Set([
|
||||
'JustSong',
|
||||
'LingYiWanWu',
|
||||
'LinuxDO',
|
||||
'Midjourney',
|
||||
'MidjourneyPlus',
|
||||
'Midjourney-Proxy',
|
||||
'MjProxy',
|
||||
'MjProxyPlus',
|
||||
'MiniMax',
|
||||
'Mistral',
|
||||
'MokaAI',
|
||||
|
||||
+2
-2
@@ -24,10 +24,10 @@ For commercial licensing, please contact support@quantumnous.com
|
||||
export const CHANNEL_TYPES = {
|
||||
0: 'Unknown',
|
||||
1: 'OpenAI',
|
||||
2: 'Midjourney',
|
||||
2: 'MjProxy',
|
||||
3: 'Azure',
|
||||
4: 'Ollama',
|
||||
5: 'MidjourneyPlus',
|
||||
5: 'MjProxyPlus',
|
||||
// 6: 'OpenAIMax',
|
||||
7: 'OhMyGPT',
|
||||
8: 'Custom',
|
||||
|
||||
+2
-2
@@ -92,8 +92,8 @@ export function getChannelTypeIcon(type: number): string {
|
||||
20: 'OpenRouter', // OpenRouter
|
||||
|
||||
// Image/Video generation
|
||||
2: 'Midjourney', // Midjourney
|
||||
5: 'Midjourney', // MidjourneyPlus
|
||||
2: 'Midjourney', // MjProxy
|
||||
5: 'Midjourney', // MjProxyPlus
|
||||
50: 'Kling', // Kling
|
||||
51: 'Jimeng', // Jimeng
|
||||
52: 'Vidu', // Vidu
|
||||
|
||||
+3
-3
@@ -87,14 +87,14 @@ export function DrawingSettingsSection({
|
||||
name: 'DrawingEnabled',
|
||||
label: t('Enable drawing features'),
|
||||
description: t(
|
||||
'Required to expose Midjourney-style image generation to end users.'
|
||||
'Required to expose MjProxy-style image generation to end users.'
|
||||
),
|
||||
},
|
||||
{
|
||||
name: 'MjNotifyEnabled',
|
||||
label: t('Allow upstream callbacks'),
|
||||
description: t(
|
||||
'When enabled, Midjourney callbacks are accepted (reveals server IP).'
|
||||
'When enabled, MjProxy callbacks are accepted (reveals server IP).'
|
||||
),
|
||||
},
|
||||
{
|
||||
@@ -115,7 +115,7 @@ export function DrawingSettingsSection({
|
||||
name: 'MjModeClearEnabled',
|
||||
label: t('Clear mode flags in prompts'),
|
||||
description: t(
|
||||
'Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.'
|
||||
'Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.'
|
||||
),
|
||||
},
|
||||
{
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@ export function SidebarModulesSection({
|
||||
},
|
||||
midjourney: {
|
||||
title: t('Drawing logs'),
|
||||
description: t('History of Midjourney-style image tasks.'),
|
||||
description: t('History of MjProxy-style image tasks.'),
|
||||
},
|
||||
task: {
|
||||
title: t('Task logs'),
|
||||
|
||||
+1
-1
@@ -91,7 +91,7 @@ export async function getUserInfo(
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Midjourney (Drawing) Logs API
|
||||
// MjProxy (Drawing) Logs API
|
||||
// ============================================================================
|
||||
|
||||
export const getAllMidjourneyLogs = (params: GetMidjourneyLogsParams) =>
|
||||
|
||||
+65
-6
@@ -18,7 +18,7 @@ For commercial licensing, please contact support@quantumnous.com
|
||||
*/
|
||||
import { useState } from 'react'
|
||||
import { type ColumnDef } from '@tanstack/react-table'
|
||||
import { CircleAlert, Sparkles, KeyRound } from 'lucide-react'
|
||||
import { CircleAlert, GitBranch, Sparkles, KeyRound } from 'lucide-react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { getUserAvatarFallback, getUserAvatarStyle } from '@/lib/avatar'
|
||||
import { formatBillingCurrencyFromUSD } from '@/lib/currency'
|
||||
@@ -29,6 +29,11 @@ import {
|
||||
} from '@/lib/format'
|
||||
import { cn } from '@/lib/utils'
|
||||
import { Avatar, AvatarFallback } from '@/components/ui/avatar'
|
||||
import {
|
||||
Popover,
|
||||
PopoverContent,
|
||||
PopoverTrigger,
|
||||
} from '@/components/ui/popover'
|
||||
import {
|
||||
Tooltip,
|
||||
TooltipContent,
|
||||
@@ -318,16 +323,23 @@ export function useCommonLogsColumns(isAdmin: boolean): ColumnDef<UsageLog>[] {
|
||||
|
||||
const other = parseLogOther(log.other)
|
||||
const affinity = other?.admin_info?.channel_affinity
|
||||
const useChannel = other?.admin_info?.use_channel
|
||||
const rawUseChannel = other?.admin_info?.use_channel ?? []
|
||||
const useChannel = Array.isArray(rawUseChannel)
|
||||
? rawUseChannel.map(String).filter(Boolean)
|
||||
: []
|
||||
const hasRetryChain = useChannel.length > 1
|
||||
const channelChain =
|
||||
useChannel && useChannel.length > 0
|
||||
? useChannel.join(' → ')
|
||||
: undefined
|
||||
hasRetryChain ? useChannel.join(' → ') : undefined
|
||||
const channelDisplay = log.channel_name
|
||||
? `${log.channel_name} #${log.channel}`
|
||||
: `#${log.channel}`
|
||||
const channelIdDisplay = `#${log.channel}`
|
||||
const channelName = sensitiveVisible ? log.channel_name : '••••'
|
||||
const multiKeyIndex = other?.admin_info?.multi_key_index
|
||||
const showMultiKeyIndex =
|
||||
other?.admin_info?.is_multi_key === true &&
|
||||
typeof multiKeyIndex === 'number' &&
|
||||
Number.isFinite(multiKeyIndex)
|
||||
|
||||
return (
|
||||
<TooltipProvider>
|
||||
@@ -337,7 +349,7 @@ export function useCommonLogsColumns(isAdmin: boolean): ColumnDef<UsageLog>[] {
|
||||
<div className='flex max-w-[160px] flex-col gap-0.5' />
|
||||
}
|
||||
>
|
||||
<div className='relative inline-flex w-fit'>
|
||||
<div className='relative inline-flex w-fit items-center gap-1'>
|
||||
<StatusBadge
|
||||
label={channelIdDisplay}
|
||||
autoColor={String(log.channel)}
|
||||
@@ -346,6 +358,48 @@ export function useCommonLogsColumns(isAdmin: boolean): ColumnDef<UsageLog>[] {
|
||||
showDot={false}
|
||||
className='font-mono'
|
||||
/>
|
||||
{showMultiKeyIndex && (
|
||||
<StatusBadge
|
||||
label={String(multiKeyIndex)}
|
||||
size='sm'
|
||||
showDot={false}
|
||||
copyable={false}
|
||||
variant='neutral'
|
||||
className='h-5 min-w-5 justify-center rounded-full px-1 font-mono text-xs'
|
||||
aria-label={`${t('Key')} ${multiKeyIndex}`}
|
||||
/>
|
||||
)}
|
||||
{hasRetryChain && (
|
||||
<Popover>
|
||||
<PopoverTrigger
|
||||
render={
|
||||
<button
|
||||
type='button'
|
||||
className='text-muted-foreground hover:text-foreground focus-visible:ring-ring inline-flex size-5 shrink-0 items-center justify-center rounded-full transition-colors focus-visible:ring-2 focus-visible:outline-none'
|
||||
aria-label={t('Retry Chain')}
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
/>
|
||||
}
|
||||
>
|
||||
<GitBranch
|
||||
className='size-3.5 text-amber-500'
|
||||
aria-hidden='true'
|
||||
/>
|
||||
</PopoverTrigger>
|
||||
<PopoverContent
|
||||
side='top'
|
||||
align='start'
|
||||
className='w-64 text-xs'
|
||||
>
|
||||
<div className='flex flex-col gap-1'>
|
||||
<p className='font-medium'>{t('Retry Chain')}</p>
|
||||
<p className='text-muted-foreground font-mono break-all'>
|
||||
{channelChain}
|
||||
</p>
|
||||
</div>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
)}
|
||||
{affinity && (
|
||||
<button
|
||||
type='button'
|
||||
@@ -384,6 +438,11 @@ export function useCommonLogsColumns(isAdmin: boolean): ColumnDef<UsageLog>[] {
|
||||
{t('Chain')}: {channelChain}
|
||||
</p>
|
||||
)}
|
||||
{showMultiKeyIndex && (
|
||||
<p className='text-muted-foreground text-xs'>
|
||||
{t('Key')}: {multiKeyIndex}
|
||||
</p>
|
||||
)}
|
||||
{affinity && (
|
||||
<div className='border-t pt-1 text-xs'>
|
||||
<p className='font-medium'>{t('Channel Affinity')}</p>
|
||||
|
||||
@@ -161,7 +161,7 @@ export function TaskLogsFilterBar<TData>(props: TaskLogsFilterBarProps<TData>) {
|
||||
const filterValue = getFilterValue(filters, props.logCategory)
|
||||
const placeholder =
|
||||
props.logCategory === 'drawing'
|
||||
? t('Filter by Midjourney task ID')
|
||||
? t('Filter by MjProxy task ID')
|
||||
: t('Filter by task ID')
|
||||
const hasAdditionalFilters = !!filterValue || !!filters.channel
|
||||
const dateRangeFilter = (
|
||||
|
||||
@@ -209,7 +209,7 @@ function CommonLogsCard<TData>({
|
||||
<SummaryField
|
||||
label={t('Channel')}
|
||||
cell={cells.get('channel')}
|
||||
primaryOnly
|
||||
valueClassName='[&_.flex-col]:max-w-none'
|
||||
/>
|
||||
<SummaryField label={t('User')} cell={cells.get('user')} primaryOnly />
|
||||
<SummaryField
|
||||
|
||||
+7
-7
@@ -115,11 +115,11 @@ export const LOG_TYPE_FILTERS = [
|
||||
] as const
|
||||
|
||||
// ============================================================================
|
||||
// Drawing Logs (Midjourney) Constants
|
||||
// Drawing Logs (MjProxy) Constants
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Midjourney task types
|
||||
* MjProxy task types
|
||||
* Must match backend constants in constant/midjourney.go
|
||||
*/
|
||||
export const MJ_TASK_TYPES = {
|
||||
@@ -144,7 +144,7 @@ export const MJ_TASK_TYPES = {
|
||||
} as const
|
||||
|
||||
/**
|
||||
* Midjourney task status
|
||||
* MjProxy task status
|
||||
*/
|
||||
export const MJ_TASK_STATUS = {
|
||||
NOT_START: 'NOT_START', // 未启动
|
||||
@@ -156,7 +156,7 @@ export const MJ_TASK_STATUS = {
|
||||
} as const
|
||||
|
||||
/**
|
||||
* Midjourney submit result codes
|
||||
* MjProxy submit result codes
|
||||
*/
|
||||
export const MJ_SUBMIT_RESULT_CODES = {
|
||||
NOT_SUBMITTED: 0, // 未提交
|
||||
@@ -223,7 +223,7 @@ export interface StatusMapping {
|
||||
}
|
||||
|
||||
/**
|
||||
* Midjourney task type mappings
|
||||
* MjProxy task type mappings
|
||||
*/
|
||||
export const MJ_TASK_TYPE_MAPPINGS: Record<string, StatusMapping> = {
|
||||
[MJ_TASK_TYPES.IMAGINE]: { label: 'Draw', variant: 'blue' },
|
||||
@@ -246,7 +246,7 @@ export const MJ_TASK_TYPE_MAPPINGS: Record<string, StatusMapping> = {
|
||||
}
|
||||
|
||||
/**
|
||||
* Midjourney task status mappings
|
||||
* MjProxy task status mappings
|
||||
*/
|
||||
export const MJ_STATUS_MAPPINGS: Record<string, StatusMapping> = {
|
||||
[MJ_TASK_STATUS.SUCCESS]: { label: 'Success', variant: 'green' },
|
||||
@@ -258,7 +258,7 @@ export const MJ_STATUS_MAPPINGS: Record<string, StatusMapping> = {
|
||||
}
|
||||
|
||||
/**
|
||||
* Midjourney submit result mappings
|
||||
* MjProxy submit result mappings
|
||||
*/
|
||||
export const MJ_SUBMIT_RESULT_MAPPINGS: Record<string, StatusMapping> = {
|
||||
[String(MJ_SUBMIT_RESULT_CODES.SUBMITTED)]: {
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ import type { LogCategory } from '../types'
|
||||
|
||||
/**
|
||||
* Get column definitions based on log category
|
||||
* Returns any[] due to different log types (UsageLog, MidjourneyLog, TaskLog)
|
||||
* Returns any[] due to different log types (UsageLog, MjProxy log, TaskLog)
|
||||
*/
|
||||
export function useColumnsByCategory(
|
||||
logCategory: LogCategory,
|
||||
|
||||
+4
-4
@@ -31,21 +31,21 @@ import {
|
||||
import { createStatusMapper } from './status'
|
||||
|
||||
// ============================================================================
|
||||
// Midjourney (Drawing) Logs Mappers
|
||||
// MjProxy (Drawing) Logs Mappers
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Midjourney task type mapper
|
||||
* MjProxy task type mapper
|
||||
*/
|
||||
export const mjTaskTypeMapper = createStatusMapper(MJ_TASK_TYPE_MAPPINGS)
|
||||
|
||||
/**
|
||||
* Midjourney task status mapper
|
||||
* MjProxy task status mapper
|
||||
*/
|
||||
export const mjStatusMapper = createStatusMapper(MJ_STATUS_MAPPINGS)
|
||||
|
||||
/**
|
||||
* Midjourney submit result mapper
|
||||
* MjProxy submit result mapper
|
||||
*/
|
||||
export const mjSubmitResultMapper = createStatusMapper(
|
||||
MJ_SUBMIT_RESULT_MAPPINGS
|
||||
|
||||
+1
-1
@@ -221,7 +221,7 @@ export interface LogStatistics {
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Drawing Logs (Midjourney) Types
|
||||
// Drawing Logs (MjProxy) Types
|
||||
// ============================================================================
|
||||
|
||||
export interface MidjourneyLog {
|
||||
|
||||
+2
-2
@@ -17,13 +17,13 @@
|
||||
"file": "ja.json",
|
||||
"missingCount": 0,
|
||||
"extrasCount": 0,
|
||||
"untranslatedCount": 0
|
||||
"untranslatedCount": 1
|
||||
},
|
||||
"ru": {
|
||||
"file": "ru.json",
|
||||
"missingCount": 0,
|
||||
"extrasCount": 0,
|
||||
"untranslatedCount": 0
|
||||
"untranslatedCount": 1
|
||||
},
|
||||
"vi": {
|
||||
"file": "vi.json",
|
||||
|
||||
Vendored
+8
-8
@@ -1825,7 +1825,7 @@
|
||||
"Filter by API key...": "Filter by API key...",
|
||||
"Filter by channel ID": "Filter by channel ID",
|
||||
"Filter by group": "Filter by group",
|
||||
"Filter by Midjourney task ID": "Filter by Midjourney task ID",
|
||||
"Filter by MjProxy task ID": "Filter by MjProxy task ID",
|
||||
"Filter by model name...": "Filter by model name...",
|
||||
"Filter by model...": "Filter by model...",
|
||||
"Filter by name or ID...": "Filter by name or ID...",
|
||||
@@ -1873,7 +1873,7 @@
|
||||
"footer.columns.docs.links.installation": "Installation Guide",
|
||||
"footer.columns.docs.links.quickStart": "Quick Start",
|
||||
"footer.columns.docs.title": "Documentation",
|
||||
"footer.columns.related.links.midjourney": "Midjourney-Proxy",
|
||||
"footer.columns.related.links.midjourney": "MjProxy",
|
||||
"footer.columns.related.links.newApiKeyTool": "new-api-key-tool",
|
||||
"footer.columns.related.links.oneApi": "One API",
|
||||
"footer.columns.related.title": "Related Projects",
|
||||
@@ -2046,7 +2046,7 @@
|
||||
"High-risk status code retry risk disclaimer": "The following status code redirect rules contain high-risk configurations. Retrying on these status codes may cause normal upstream charges that cannot be recovered. Please carefully verify these configurations.",
|
||||
"Higher priority channels are selected first": "Higher priority channels are selected first",
|
||||
"Historical Usage": "Historical Usage",
|
||||
"History of Midjourney-style image tasks.": "History of Midjourney-style image tasks.",
|
||||
"History of MjProxy-style image tasks.": "History of MjProxy-style image tasks.",
|
||||
"Hit criteria: If cached tokens exist in usage, it counts as a hit.": "Hit criteria: If cached tokens exist in usage, it counts as a hit.",
|
||||
"Hit Rate": "Hit Rate",
|
||||
"Hit tier": "Hit tier",
|
||||
@@ -2417,8 +2417,8 @@
|
||||
"Merchant ID is required": "Merchant ID is required",
|
||||
"Message Priority": "Message Priority",
|
||||
"Metadata": "Metadata",
|
||||
"Midjourney": "Midjourney",
|
||||
"MidjourneyPlus": "MidjourneyPlus",
|
||||
"MjProxy": "MjProxy",
|
||||
"MjProxyPlus": "MjProxyPlus",
|
||||
"min downtime": "min downtime",
|
||||
"Min Top-up": "Min Top-up",
|
||||
"Min Top-up:": "Min Top-up:",
|
||||
@@ -3442,7 +3442,7 @@
|
||||
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}",
|
||||
"Removed an OAuth binding for the user": "Removed an OAuth binding for the user",
|
||||
"Removed Models ({{count}})": "Removed Models ({{count}})",
|
||||
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.",
|
||||
"Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.": "Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.",
|
||||
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "Removing Passkey will require you to sign in with your password next time. You can re-register anytime.",
|
||||
"Rename": "Rename",
|
||||
"Rename deployment": "Rename deployment",
|
||||
@@ -3497,7 +3497,7 @@
|
||||
"Required": "Required",
|
||||
"Required events:": "Required events:",
|
||||
"Required provider, authentication, model, and group settings": "Required provider, authentication, model, and group settings",
|
||||
"Required to expose Midjourney-style image generation to end users.": "Required to expose Midjourney-style image generation to end users.",
|
||||
"Required to expose MjProxy-style image generation to end users.": "Required to expose MjProxy-style image generation to end users.",
|
||||
"Rerank": "Rerank",
|
||||
"Reroll": "Reroll",
|
||||
"Research, analysis, scientific reasoning": "Research, analysis, scientific reasoning",
|
||||
@@ -4684,7 +4684,7 @@
|
||||
"When enabled, if channels in the current group fail, it will try channels in the next group in order.": "When enabled, if channels in the current group fail, it will try channels in the next group in order.",
|
||||
"When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. Leave it off to delete the entry and select another channel.": "When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. Leave it off to delete the entry and select another channel.",
|
||||
"When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.": "When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.",
|
||||
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "When enabled, Midjourney callbacks are accepted (reveals server IP).",
|
||||
"When enabled, MjProxy callbacks are accepted (reveals server IP).": "When enabled, MjProxy callbacks are accepted (reveals server IP).",
|
||||
"When enabled, newly created tokens start in the first auto group.": "When enabled, newly created tokens start in the first auto group.",
|
||||
"When enabled, prompts are scanned before reaching upstream models.": "When enabled, prompts are scanned before reaching upstream models.",
|
||||
"When enabled, the store field will be blocked": "When enabled, the store field will be blocked",
|
||||
|
||||
Vendored
+8
-8
@@ -1825,7 +1825,7 @@
|
||||
"Filter by API key...": "Filtrer par clé API...",
|
||||
"Filter by channel ID": "Filtrer par ID de canal",
|
||||
"Filter by group": "Filtrer par groupe",
|
||||
"Filter by Midjourney task ID": "Filtrer par ID de tâche Midjourney",
|
||||
"Filter by MjProxy task ID": "Filtrer par ID de tâche MjProxy",
|
||||
"Filter by model name...": "Filtrer par nom du modèle...",
|
||||
"Filter by model...": "Filtrer par modèle...",
|
||||
"Filter by name or ID...": "Filtrer par nom ou ID...",
|
||||
@@ -1873,7 +1873,7 @@
|
||||
"footer.columns.docs.links.installation": "Guide d'installation",
|
||||
"footer.columns.docs.links.quickStart": "Démarrage rapide",
|
||||
"footer.columns.docs.title": "Documentation",
|
||||
"footer.columns.related.links.midjourney": "Midjourney-Proxy",
|
||||
"footer.columns.related.links.midjourney": "MjProxy",
|
||||
"footer.columns.related.links.newApiKeyTool": "new-api-key-tool",
|
||||
"footer.columns.related.links.oneApi": "One API",
|
||||
"footer.columns.related.title": "Projets liés",
|
||||
@@ -2046,7 +2046,7 @@
|
||||
"High-risk status code retry risk disclaimer": "Les règles de redirection suivantes contiennent des configurations à haut risque. La relance sur ces codes d'état peut entraîner des frais normaux en amont non récupérables. Veuillez vérifier soigneusement.",
|
||||
"Higher priority channels are selected first": "Les canaux de priorité plus élevée sont sélectionnés en premier",
|
||||
"Historical Usage": "Utilisation historique",
|
||||
"History of Midjourney-style image tasks.": "Historique des tâches d'images style Midjourney.",
|
||||
"History of MjProxy-style image tasks.": "Historique des tâches d'images style MjProxy.",
|
||||
"Hit criteria: If cached tokens exist in usage, it counts as a hit.": "Critère de hit : si des tokens en cache existent dans l'utilisation, cela compte comme un hit.",
|
||||
"Hit Rate": "Taux de succès",
|
||||
"Hit tier": "Palier atteint",
|
||||
@@ -2417,8 +2417,8 @@
|
||||
"Merchant ID is required": "L'ID marchand est requis",
|
||||
"Message Priority": "Priorité du message",
|
||||
"Metadata": "Métadonnées",
|
||||
"Midjourney": "Midjourney",
|
||||
"MidjourneyPlus": "MidjourneyPlus",
|
||||
"MjProxy": "MjProxy",
|
||||
"MjProxyPlus": "MjProxyPlus",
|
||||
"min downtime": "min d'interruption",
|
||||
"Min Top-up": "Recharge min.",
|
||||
"Min Top-up:": "Recharge min. :",
|
||||
@@ -3442,7 +3442,7 @@
|
||||
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "{{removed}} clé(s) en double supprimée(s). Avant : {{before}}, Après : {{after}}",
|
||||
"Removed an OAuth binding for the user": "Liaison OAuth de l'utilisateur supprimée",
|
||||
"Removed Models ({{count}})": "Modèles supprimés ({{count}})",
|
||||
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "Supprime les drapeaux Midjourney tels que --fast, --relax et --turbo des prompts utilisateur.",
|
||||
"Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.": "Supprime les drapeaux MjProxy tels que --fast, --relax et --turbo des prompts utilisateur.",
|
||||
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "La suppression de la clé d'accès (Passkey) vous obligera à vous connecter avec votre mot de passe la prochaine fois. Vous pouvez vous réinscrire à tout moment.",
|
||||
"Rename": "Renommer",
|
||||
"Rename deployment": "Renommer le déploiement",
|
||||
@@ -3497,7 +3497,7 @@
|
||||
"Required": "Requis",
|
||||
"Required events:": "Événements requis :",
|
||||
"Required provider, authentication, model, and group settings": "Paramètres requis de fournisseur, authentification, modèles et groupes",
|
||||
"Required to expose Midjourney-style image generation to end users.": "Requis pour exposer la génération d'images style Midjourney aux utilisateurs finaux.",
|
||||
"Required to expose MjProxy-style image generation to end users.": "Requis pour exposer la génération d'images style MjProxy aux utilisateurs finaux.",
|
||||
"Rerank": "Reclasser",
|
||||
"Reroll": "Relancer",
|
||||
"Research, analysis, scientific reasoning": "Recherche, analyse, raisonnement scientifique",
|
||||
@@ -4684,7 +4684,7 @@
|
||||
"When enabled, if channels in the current group fail, it will try channels in the next group in order.": "Lorsqu'elle est activée, si les canaux du groupe actuel échouent, le système essaiera les canaux du groupe suivant dans l'ordre.",
|
||||
"When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. Leave it off to delete the entry and select another channel.": "Lorsque cette option est activée, conserver l'entrée d'affinité même si le canal affinitaire est désactivé ou n'est plus utilisable pour le groupe/modèle actuel. Laissez-la désactivée pour supprimer l'entrée et sélectionner un autre canal.",
|
||||
"When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.": "Lorsqu'activé, les corps de requête volumineux sont temporairement stockés sur disque, réduisant considérablement l'utilisation mémoire. SSD recommandé.",
|
||||
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "Lorsque activé, les callbacks Midjourney sont acceptés (révèle l'IP du serveur).",
|
||||
"When enabled, MjProxy callbacks are accepted (reveals server IP).": "Lorsque activé, les callbacks MjProxy sont acceptés (révèle l'IP du serveur).",
|
||||
"When enabled, newly created tokens start in the first auto group.": "Lorsqu'elle est activée, les jetons nouvellement créés commencent dans le premier groupe automatique.",
|
||||
"When enabled, prompts are scanned before reaching upstream models.": "Lorsqu'elle est activée, les invites sont scannées avant d'atteindre les modèles en amont.",
|
||||
"When enabled, the store field will be blocked": "Lorsqu'il est activé, le champ de la boutique sera bloqué",
|
||||
|
||||
Vendored
+8
-8
@@ -1825,7 +1825,7 @@
|
||||
"Filter by API key...": "APIキーでフィルター...",
|
||||
"Filter by channel ID": "チャネルIDでフィルター",
|
||||
"Filter by group": "グループでフィルター",
|
||||
"Filter by Midjourney task ID": "MidjourneyタスクIDでフィルター",
|
||||
"Filter by MjProxy task ID": "MjProxyタスクIDでフィルター",
|
||||
"Filter by model name...": "モデル名でフィルター...",
|
||||
"Filter by model...": "モデルでフィルタリング...",
|
||||
"Filter by name or ID...": "名前またはIDでフィルター...",
|
||||
@@ -1873,7 +1873,7 @@
|
||||
"footer.columns.docs.links.installation": "インストールガイド",
|
||||
"footer.columns.docs.links.quickStart": "クイックスタート",
|
||||
"footer.columns.docs.title": "ドキュメント",
|
||||
"footer.columns.related.links.midjourney": "Midjourney-Proxy",
|
||||
"footer.columns.related.links.midjourney": "MjProxy",
|
||||
"footer.columns.related.links.newApiKeyTool": "new-api-key-tool",
|
||||
"footer.columns.related.links.oneApi": "1つのAPI",
|
||||
"footer.columns.related.title": "関連プロジェクト",
|
||||
@@ -2046,7 +2046,7 @@
|
||||
"High-risk status code retry risk disclaimer": "以下のステータスコードリダイレクトルールには高リスクの設定が含まれています。これらのステータスコードでリトライすると、上流の正常な課金が発生し、回収できない可能性があります。",
|
||||
"Higher priority channels are selected first": "優先度の高いチャネルが先に選択されます",
|
||||
"Historical Usage": "履歴使用状況",
|
||||
"History of Midjourney-style image tasks.": "Midjourneyスタイルの画像タスクの履歴。",
|
||||
"History of MjProxy-style image tasks.": "MjProxyスタイルの画像タスクの履歴。",
|
||||
"Hit criteria: If cached tokens exist in usage, it counts as a hit.": "ヒット判定:usage に cached tokens が存在すればヒットとみなします。",
|
||||
"Hit Rate": "ヒット率",
|
||||
"Hit tier": "一致したティア",
|
||||
@@ -2417,8 +2417,8 @@
|
||||
"Merchant ID is required": "マーチャント ID は必須です",
|
||||
"Message Priority": "メッセージの優先度",
|
||||
"Metadata": "メタデータ",
|
||||
"Midjourney": "Midjourney",
|
||||
"MidjourneyPlus": "MidjourneyPlus",
|
||||
"MjProxy": "MjProxy",
|
||||
"MjProxyPlus": "MjProxyPlus",
|
||||
"min downtime": "分のダウンタイム",
|
||||
"Min Top-up": "最低チャージ額",
|
||||
"Min Top-up:": "最小チャージ額:",
|
||||
@@ -3442,7 +3442,7 @@
|
||||
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "{{removed}} 個の重複キーを削除しました。削除前:{{before}}、削除後:{{after}}",
|
||||
"Removed an OAuth binding for the user": "ユーザーの OAuth 連携を解除しました",
|
||||
"Removed Models ({{count}})": "削除済みモデル ({{count}})",
|
||||
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "ユーザー プロンプトから --fast、--relax、--turbo などの Midjourney フラグを削除します。",
|
||||
"Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.": "ユーザー プロンプトから --fast、--relax、--turbo などの MjProxy フラグを削除します。",
|
||||
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "Passkeyを削除すると、次回からパスワードでサインインする必要があります。いつでも再登録できます。",
|
||||
"Rename": "名前変更",
|
||||
"Rename deployment": "デプロイメントの名前を変更",
|
||||
@@ -3497,7 +3497,7 @@
|
||||
"Required": "必須",
|
||||
"Required events:": "必須イベント:",
|
||||
"Required provider, authentication, model, and group settings": "必須のプロバイダー、認証、モデル、グループ設定",
|
||||
"Required to expose Midjourney-style image generation to end users.": "エンドユーザーに Midjourney スタイルの画像生成を公開するために必要です。",
|
||||
"Required to expose MjProxy-style image generation to end users.": "エンドユーザーに MjProxy スタイルの画像生成を公開するために必要です。",
|
||||
"Rerank": "再ランク付け",
|
||||
"Reroll": "やり直し",
|
||||
"Research, analysis, scientific reasoning": "リサーチ・分析・科学的推論",
|
||||
@@ -4684,7 +4684,7 @@
|
||||
"When enabled, if channels in the current group fail, it will try channels in the next group in order.": "有効にすると、現在のグループのチャネルが失敗した場合、次のグループのチャネルを順番に試します。",
|
||||
"When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. Leave it off to delete the entry and select another channel.": "有効にすると、アフィニティチャネルが無効化された、または現在のグループ/モデルで利用できなくなった場合でも、そのアフィニティエントリを保持します。無効のままにすると、エントリを削除して別のチャネルを選択します。",
|
||||
"When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.": "有効にすると、大きなリクエストボディはメモリではなくディスクに一時保存され、メモリ使用量が大幅に削減されます。SSD環境での使用を推奨します。",
|
||||
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "有効にすると、Midjourney のコールバックを受け入れます (サーバーの IP を公開します)。",
|
||||
"When enabled, MjProxy callbacks are accepted (reveals server IP).": "有効にすると、MjProxy のコールバックを受け入れます (サーバーの IP を公開します)。",
|
||||
"When enabled, newly created tokens start in the first auto group.": "有効にすると、新しく作成されたトークンは最初の自動グループで開始されます。",
|
||||
"When enabled, prompts are scanned before reaching upstream models.": "有効にすると、プロンプトはアップストリームモデルに到達する前にスキャンされます。",
|
||||
"When enabled, the store field will be blocked": "有効にすると、ストアフィールドはブロックされます",
|
||||
|
||||
Vendored
+8
-8
@@ -1825,7 +1825,7 @@
|
||||
"Filter by API key...": "Фильтр по API-ключу...",
|
||||
"Filter by channel ID": "Фильтр по ID канала",
|
||||
"Filter by group": "Фильтр по группе",
|
||||
"Filter by Midjourney task ID": "Фильтр по ID задачи Midjourney",
|
||||
"Filter by MjProxy task ID": "Фильтр по ID задачи MjProxy",
|
||||
"Filter by model name...": "Фильтр по имени модели...",
|
||||
"Filter by model...": "Фильтровать по модели...",
|
||||
"Filter by name or ID...": "Фильтр по имени или ID...",
|
||||
@@ -1873,7 +1873,7 @@
|
||||
"footer.columns.docs.links.installation": "Руководство по установке",
|
||||
"footer.columns.docs.links.quickStart": "Быстрый старт",
|
||||
"footer.columns.docs.title": "Документация",
|
||||
"footer.columns.related.links.midjourney": "Midjourney-Proxy",
|
||||
"footer.columns.related.links.midjourney": "MjProxy",
|
||||
"footer.columns.related.links.newApiKeyTool": "new-api-key-tool",
|
||||
"footer.columns.related.links.oneApi": "Один API",
|
||||
"footer.columns.related.title": "Связанные проекты",
|
||||
@@ -2046,7 +2046,7 @@
|
||||
"High-risk status code retry risk disclaimer": "Следующие правила перенаправления кодов состояния содержат высокорисковые конфигурации. Повторные попытки при этих кодах могут привести к нормальным начислениям от провайдера, которые невозможно вернуть.",
|
||||
"Higher priority channels are selected first": "Каналы с более высоким приоритетом выбираются первыми",
|
||||
"Historical Usage": "История использования",
|
||||
"History of Midjourney-style image tasks.": "История задач генерации изображений в стиле Midjourney.",
|
||||
"History of MjProxy-style image tasks.": "История задач генерации изображений в стиле MjProxy.",
|
||||
"Hit criteria: If cached tokens exist in usage, it counts as a hit.": "Критерий попадания: если в usage есть кэшированные токены, это считается попаданием.",
|
||||
"Hit Rate": "Частота попаданий",
|
||||
"Hit tier": "Совпавший уровень",
|
||||
@@ -2417,8 +2417,8 @@
|
||||
"Merchant ID is required": "Требуется ID мерчанта",
|
||||
"Message Priority": "Приоритет сообщения",
|
||||
"Metadata": "Метаданные",
|
||||
"Midjourney": "Midjourney",
|
||||
"MidjourneyPlus": "MidjourneyPlus",
|
||||
"MjProxy": "MjProxy",
|
||||
"MjProxyPlus": "MjProxyPlus",
|
||||
"min downtime": "мин простоя",
|
||||
"Min Top-up": "Мин. пополнение",
|
||||
"Min Top-up:": "Мин. пополнение:",
|
||||
@@ -3442,7 +3442,7 @@
|
||||
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "Удалено {{removed}} дублирующихся ключей. До: {{before}}, После: {{after}}",
|
||||
"Removed an OAuth binding for the user": "Привязка OAuth пользователя удалена",
|
||||
"Removed Models ({{count}})": "Удалённые модели ({{count}})",
|
||||
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "Удаляет флаги Midjourney, такие как --fast, --relax и --turbo, из промптов пользователя.",
|
||||
"Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.": "Удаляет флаги MjProxy, такие как --fast, --relax и --turbo, из промптов пользователя.",
|
||||
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "Удаление ключа доступа потребует от вас входа с паролем в следующий раз. Вы можете перерегистрироваться в любое время.",
|
||||
"Rename": "Переименовать",
|
||||
"Rename deployment": "Переименовать развертывание",
|
||||
@@ -3497,7 +3497,7 @@
|
||||
"Required": "Обязательно",
|
||||
"Required events:": "Обязательные события:",
|
||||
"Required provider, authentication, model, and group settings": "Обязательные настройки провайдера, аутентификации, моделей и групп",
|
||||
"Required to expose Midjourney-style image generation to end users.": "Необходимо для предоставления генерации изображений в стиле Midjourney конечным пользователям.",
|
||||
"Required to expose MjProxy-style image generation to end users.": "Необходимо для предоставления генерации изображений в стиле MjProxy конечным пользователям.",
|
||||
"Rerank": "Переранжировать",
|
||||
"Reroll": "Повторить",
|
||||
"Research, analysis, scientific reasoning": "Исследования, анализ, научные рассуждения",
|
||||
@@ -4684,7 +4684,7 @@
|
||||
"When enabled, if channels in the current group fail, it will try channels in the next group in order.": "Если включено, при сбое каналов в текущей группе система попробует каналы следующей группы по порядку.",
|
||||
"When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. Leave it off to delete the entry and select another channel.": "Если включено, запись привязки сохраняется, даже когда привязанный канал отключён или больше не подходит для текущей группы/модели. Оставьте выключенным, чтобы удалять запись и выбирать другой канал.",
|
||||
"When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.": "При включении большие тела запросов временно сохраняются на диске, что значительно снижает использование памяти. Рекомендуется SSD.",
|
||||
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "При включении принимаются обратные вызовы Midjourney (раскрывает IP сервера).",
|
||||
"When enabled, MjProxy callbacks are accepted (reveals server IP).": "При включении принимаются обратные вызовы MjProxy (раскрывает IP сервера).",
|
||||
"When enabled, newly created tokens start in the first auto group.": "При включении вновь созданные токены начинаются в первой автогруппе.",
|
||||
"When enabled, prompts are scanned before reaching upstream models.": "При включении запросы сканируются перед достижением вышестоящих моделей.",
|
||||
"When enabled, the store field will be blocked": "Если включено, поле магазина будет заблокировано",
|
||||
|
||||
Vendored
+8
-8
@@ -1825,7 +1825,7 @@
|
||||
"Filter by API key...": "Lọc theo khóa API...",
|
||||
"Filter by channel ID": "Lọc theo ID kênh",
|
||||
"Filter by group": "Lọc theo nhóm",
|
||||
"Filter by Midjourney task ID": "Lọc theo ID nhiệm vụ Midjourney",
|
||||
"Filter by MjProxy task ID": "Lọc theo ID nhiệm vụ MjProxy",
|
||||
"Filter by model name...": "Lọc theo tên mô hình...",
|
||||
"Filter by model...": "Lọc theo mẫu...",
|
||||
"Filter by name or ID...": "Lọc theo tên hoặc ID...",
|
||||
@@ -1873,7 +1873,7 @@
|
||||
"footer.columns.docs.links.installation": "Hướng Dẫn Cài Đặt",
|
||||
"footer.columns.docs.links.quickStart": "Bắt Đầu Nhanh",
|
||||
"footer.columns.docs.title": "Tài Liệu",
|
||||
"footer.columns.related.links.midjourney": "Midjourney-Proxy",
|
||||
"footer.columns.related.links.midjourney": "MjProxy",
|
||||
"footer.columns.related.links.newApiKeyTool": "new-api-key-tool",
|
||||
"footer.columns.related.links.oneApi": "One API",
|
||||
"footer.columns.related.title": "Các Dự Án Liên Quan",
|
||||
@@ -2046,7 +2046,7 @@
|
||||
"High-risk status code retry risk disclaimer": "Các quy tắc chuyển hướng mã trạng thái sau chứa cấu hình rủi ro cao. Thử lại trên các mã này có thể phát sinh phí không thể thu hồi. Vui lòng xác minh cẩn thận.",
|
||||
"Higher priority channels are selected first": "Các kênh ưu tiên cao hơn được chọn trước tiên",
|
||||
"Historical Usage": "Lịch sử sử dụng",
|
||||
"History of Midjourney-style image tasks.": "Lịch sử các tác vụ hình ảnh kiểu Midjourney.",
|
||||
"History of MjProxy-style image tasks.": "Lịch sử các tác vụ hình ảnh kiểu MjProxy.",
|
||||
"Hit criteria: If cached tokens exist in usage, it counts as a hit.": "Tiêu chí trúng: Nếu cached tokens tồn tại trong usage, được tính là trúng.",
|
||||
"Hit Rate": "Tỷ lệ trúng",
|
||||
"Hit tier": "Bậc trúng",
|
||||
@@ -2417,8 +2417,8 @@
|
||||
"Merchant ID is required": "Bắt buộc nhập Merchant ID",
|
||||
"Message Priority": "Ưu tiên tin nhắn",
|
||||
"Metadata": "Siêu dữ liệu",
|
||||
"Midjourney": "Midjourney",
|
||||
"MidjourneyPlus": "MidjourneyPlus",
|
||||
"MjProxy": "MjProxy",
|
||||
"MjProxyPlus": "MjProxyPlus",
|
||||
"min downtime": "phút gián đoạn",
|
||||
"Min Top-up": "Nạp tối thiểu",
|
||||
"Min Top-up:": "Nạp tối thiểu:",
|
||||
@@ -3442,7 +3442,7 @@
|
||||
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "Đã xóa {{removed}} khóa trùng lặp. Trước: {{before}}, Sau: {{after}}",
|
||||
"Removed an OAuth binding for the user": "Đã gỡ một liên kết OAuth của người dùng",
|
||||
"Removed Models ({{count}})": "Các mô hình đã xóa ({{count}})",
|
||||
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "Loại bỏ các cờ Midjourney như --fast, --relax và --turbo khỏi lời nhắc của người dùng.",
|
||||
"Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.": "Loại bỏ các cờ MjProxy như --fast, --relax và --turbo khỏi lời nhắc của người dùng.",
|
||||
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "Xóa Khóa truy cập sẽ yêu cầu bạn đăng nhập bằng mật khẩu của mình vào lần tới. Bạn có thể đăng ký lại bất cứ lúc nào.",
|
||||
"Rename": "Đổi tên",
|
||||
"Rename deployment": "Đổi tên deployment",
|
||||
@@ -3497,7 +3497,7 @@
|
||||
"Required": "Bắt buộc",
|
||||
"Required events:": "Sự kiện bắt buộc:",
|
||||
"Required provider, authentication, model, and group settings": "Thiết lập bắt buộc về nhà cung cấp, xác thực, mô hình và nhóm",
|
||||
"Required to expose Midjourney-style image generation to end users.": "Cần thiết để cung cấp tính năng tạo hình ảnh kiểu Midjourney cho người dùng cuối.",
|
||||
"Required to expose MjProxy-style image generation to end users.": "Cần thiết để cung cấp tính năng tạo hình ảnh kiểu MjProxy cho người dùng cuối.",
|
||||
"Rerank": "Re-rank",
|
||||
"Reroll": "Quay lại",
|
||||
"Research, analysis, scientific reasoning": "Nghiên cứu, phân tích, suy luận khoa học",
|
||||
@@ -4684,7 +4684,7 @@
|
||||
"When enabled, if channels in the current group fail, it will try channels in the next group in order.": "Khi được bật, nếu các kênh trong nhóm hiện tại thất bại, hệ thống sẽ thử các kênh của nhóm tiếp theo theo thứ tự.",
|
||||
"When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. Leave it off to delete the entry and select another channel.": "Khi bật, giữ mục ưu tiên ngay cả khi kênh ưu tiên bị tắt hoặc không còn dùng được cho nhóm/mô hình hiện tại. Để tắt để xóa mục đó và chọn kênh khác.",
|
||||
"When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.": "Khi bật, nội dung yêu cầu lớn sẽ được lưu tạm trên đĩa thay vì bộ nhớ, giảm đáng kể việc sử dụng bộ nhớ. Khuyến nghị dùng SSD.",
|
||||
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "Khi được bật, các callback của Midjourney được chấp nhận (lộ IP máy chủ).",
|
||||
"When enabled, MjProxy callbacks are accepted (reveals server IP).": "Khi được bật, các callback của MjProxy được chấp nhận (lộ IP máy chủ).",
|
||||
"When enabled, newly created tokens start in the first auto group.": "Khi được bật, các token mới được tạo sẽ bắt đầu trong nhóm tự động đầu tiên.",
|
||||
"When enabled, prompts are scanned before reaching upstream models.": "Khi được bật,",
|
||||
"When enabled, the store field will be blocked": "Khi được bật, trường store sẽ bị chặn",
|
||||
|
||||
Vendored
+8
-8
@@ -1825,7 +1825,7 @@
|
||||
"Filter by API key...": "按 API 密钥筛选...",
|
||||
"Filter by channel ID": "按渠道 ID 筛选",
|
||||
"Filter by group": "按分组筛选",
|
||||
"Filter by Midjourney task ID": "按 Midjourney 任务 ID 筛选",
|
||||
"Filter by MjProxy task ID": "按 MjProxy 任务 ID 筛选",
|
||||
"Filter by model name...": "按模型名称筛选...",
|
||||
"Filter by model...": "按模型筛选...",
|
||||
"Filter by name or ID...": "按名称或 ID 筛选...",
|
||||
@@ -1873,7 +1873,7 @@
|
||||
"footer.columns.docs.links.installation": "安装指南",
|
||||
"footer.columns.docs.links.quickStart": "快速入门",
|
||||
"footer.columns.docs.title": "文档",
|
||||
"footer.columns.related.links.midjourney": "Midjourney-Proxy",
|
||||
"footer.columns.related.links.midjourney": "MjProxy",
|
||||
"footer.columns.related.links.newApiKeyTool": "new-api-key-tool",
|
||||
"footer.columns.related.links.oneApi": "One API",
|
||||
"footer.columns.related.title": "相关项目",
|
||||
@@ -2046,7 +2046,7 @@
|
||||
"High-risk status code retry risk disclaimer": "以下状态码重定向规则包含高风险配置。在这些状态码上重试可能导致上游正常扣费且无法追回。请仔细核实这些配置。",
|
||||
"Higher priority channels are selected first": "优先级更高的渠道优先被选中",
|
||||
"Historical Usage": "历史使用情况",
|
||||
"History of Midjourney-style image tasks.": "Midjourney 风格图像任务历史。",
|
||||
"History of MjProxy-style image tasks.": "MjProxy 风格图像任务历史。",
|
||||
"Hit criteria: If cached tokens exist in usage, it counts as a hit.": "命中判定:usage 中存在 cached tokens 即视为命中。",
|
||||
"Hit Rate": "命中率",
|
||||
"Hit tier": "命中档位",
|
||||
@@ -2417,8 +2417,8 @@
|
||||
"Merchant ID is required": "商户 ID 为必填项",
|
||||
"Message Priority": "消息优先级",
|
||||
"Metadata": "元信息",
|
||||
"Midjourney": "Midjourney",
|
||||
"MidjourneyPlus": "MidjourneyPlus",
|
||||
"MjProxy": "MjProxy",
|
||||
"MjProxyPlus": "MjProxyPlus",
|
||||
"min downtime": "分钟停机",
|
||||
"Min Top-up": "最低充值",
|
||||
"Min Top-up:": "最低充值:",
|
||||
@@ -3442,7 +3442,7 @@
|
||||
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "已移除 {{removed}} 个重复密钥。移除前:{{before}},移除后:{{after}}",
|
||||
"Removed an OAuth binding for the user": "解除了用户的一个 OAuth 绑定",
|
||||
"Removed Models ({{count}})": "已移除模型 ({{count}})",
|
||||
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "从用户提示中移除 Midjourney 参数,如 --fast、--relax 和 --turbo。",
|
||||
"Removes MjProxy flags such as --fast, --relax, and --turbo from user prompts.": "从用户提示中移除 MjProxy 参数,如 --fast、--relax 和 --turbo。",
|
||||
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "移除通行密钥后,您下次将需要使用密码登录。您可以随时重新注册。",
|
||||
"Rename": "重命名",
|
||||
"Rename deployment": "重命名部署",
|
||||
@@ -3497,7 +3497,7 @@
|
||||
"Required": "必需",
|
||||
"Required events:": "必需事件:",
|
||||
"Required provider, authentication, model, and group settings": "必填的供应商、鉴权、模型和分组设置",
|
||||
"Required to expose Midjourney-style image generation to end users.": "需要向终端用户开放 Midjourney 风格的图像生成。",
|
||||
"Required to expose MjProxy-style image generation to end users.": "需要向终端用户开放 MjProxy 风格的图像生成。",
|
||||
"Rerank": "重新排序",
|
||||
"Reroll": "重绘",
|
||||
"Research, analysis, scientific reasoning": "研究、分析与科学推理",
|
||||
@@ -4684,7 +4684,7 @@
|
||||
"When enabled, if channels in the current group fail, it will try channels in the next group in order.": "开启后,当前分组渠道失败时会按顺序尝试下一个分组的渠道。",
|
||||
"When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. Leave it off to delete the entry and select another channel.": "开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。",
|
||||
"When enabled, large request bodies are temporarily stored on disk instead of memory, significantly reducing memory usage. SSD recommended.": "启用磁盘缓存后,大请求体将临时存储到磁盘而非内存,可显著降低内存占用。建议在 SSD 环境下使用。",
|
||||
"When enabled, Midjourney callbacks are accepted (reveals server IP).": "启用时,接受 Midjourney 回调 (会泄露服务器 IP)。",
|
||||
"When enabled, MjProxy callbacks are accepted (reveals server IP).": "启用时,接受 MjProxy 回调 (会泄露服务器 IP)。",
|
||||
"When enabled, newly created tokens start in the first auto group.": "启用后,新创建的令牌将从第一个自动分组开始。",
|
||||
"When enabled, prompts are scanned before reaching upstream models.": "启用后,提示将在到达上游模型之前被扫描。",
|
||||
"When enabled, the store field will be blocked": "开启后将阻止 store 字段透传",
|
||||
|
||||
Reference in New Issue
Block a user