feat: standardize OpenAI Models label usage across components
This commit is contained in:
+19
-8
@@ -67,6 +67,7 @@ import {
|
||||
ADVANCED_CUSTOM_AUTH_MODE_OPTIONS,
|
||||
ADVANCED_CUSTOM_CONVERTER_OPTIONS,
|
||||
ADVANCED_CUSTOM_INCOMING_PATH_OPTIONS,
|
||||
ADVANCED_CUSTOM_MODEL_LIST_LABEL,
|
||||
ADVANCED_CUSTOM_MODEL_LIST_PATH,
|
||||
ADVANCED_CUSTOM_TEMPLATE_OPTIONS,
|
||||
type AdvancedCustomAuthMode,
|
||||
@@ -619,7 +620,7 @@ export function AdvancedCustomEditorDialog({
|
||||
<div className='flex flex-col gap-4 p-4 lg:gap-3'>
|
||||
<div className='flex justify-end border-y py-4 lg:py-2'>
|
||||
<Select
|
||||
items={availableIncomingPathOptions.map((option) => option.value)}
|
||||
items={availableIncomingPathOptions}
|
||||
value={null}
|
||||
onValueChange={(incomingPath) => {
|
||||
if (typeof incomingPath === 'string') {
|
||||
@@ -647,7 +648,7 @@ export function AdvancedCustomEditorDialog({
|
||||
className={longSelectItemClass}
|
||||
>
|
||||
<div className='flex min-w-0 flex-col gap-1 leading-snug whitespace-normal'>
|
||||
<span>{t(option.label)}</span>
|
||||
<span>{option.label}</span>
|
||||
<span className='text-muted-foreground font-mono text-xs break-all'>
|
||||
{option.value}
|
||||
</span>
|
||||
@@ -802,7 +803,9 @@ function RouteGroupEditor({
|
||||
{group.routeRows.length} {t('Routes')}
|
||||
</Badge>
|
||||
{isModelListGroup ? (
|
||||
<Badge variant='outline'>{t('OpenAI Models')}</Badge>
|
||||
<Badge variant='outline'>
|
||||
{ADVANCED_CUSTOM_MODEL_LIST_LABEL}
|
||||
</Badge>
|
||||
) : (
|
||||
<Badge variant={hasCatchAll ? 'outline' : 'secondary'}>
|
||||
{hasCatchAll ? t('Fallback route') : t('Model-scoped only')}
|
||||
@@ -812,10 +815,14 @@ function RouteGroupEditor({
|
||||
<Badge variant='destructive'>{t('Fallback must be last')}</Badge>
|
||||
) : null}
|
||||
</div>
|
||||
<Select value={incomingPath} onValueChange={onIncomingPathChange}>
|
||||
<Select
|
||||
items={ADVANCED_CUSTOM_INCOMING_PATH_OPTIONS}
|
||||
value={incomingPath}
|
||||
onValueChange={onIncomingPathChange}
|
||||
>
|
||||
<SelectTrigger className='h-9 max-w-full lg:max-w-[420px]'>
|
||||
<SelectValue className='min-w-0 truncate'>
|
||||
{t(incomingPathLabel)}
|
||||
{incomingPathLabel}
|
||||
</SelectValue>
|
||||
</SelectTrigger>
|
||||
<SelectContent
|
||||
@@ -836,7 +843,7 @@ function RouteGroupEditor({
|
||||
className={longSelectItemClass}
|
||||
>
|
||||
<div className='flex min-w-0 flex-col gap-1 leading-snug whitespace-normal'>
|
||||
<span>{t(option.label)}</span>
|
||||
<span>{option.label}</span>
|
||||
<span className='text-muted-foreground font-mono text-xs break-all'>
|
||||
{option.value}
|
||||
</span>
|
||||
@@ -1048,7 +1055,9 @@ function RouteEditor({
|
||||
{t('Route')} {index + 1}
|
||||
</div>
|
||||
{isModelListRoute ? (
|
||||
<Badge variant='outline'>{t('OpenAI Models')}</Badge>
|
||||
<Badge variant='outline'>
|
||||
{ADVANCED_CUSTOM_MODEL_LIST_LABEL}
|
||||
</Badge>
|
||||
) : null}
|
||||
{!isModelListRoute && isFallback ? (
|
||||
<Badge variant='outline'>{t('Fallback')}</Badge>
|
||||
@@ -1120,7 +1129,9 @@ function RouteEditor({
|
||||
>
|
||||
{isModelListRoute && parsedRouteModels.length === 0 ? (
|
||||
<div className='flex h-9 items-center'>
|
||||
<Badge variant='outline'>{t('OpenAI Models')}</Badge>
|
||||
<Badge variant='outline'>
|
||||
{ADVANCED_CUSTOM_MODEL_LIST_LABEL}
|
||||
</Badge>
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
|
||||
+3
-3
@@ -869,7 +869,7 @@ export function ChannelMutateDrawer({
|
||||
advancedCustomRouteTypeLabels.length
|
||||
const advancedCustomRouteTypeTitle =
|
||||
hiddenAdvancedCustomRouteTypeCount > 0
|
||||
? advancedCustomStats.routeTypeLabels.map((label) => t(label)).join(', ')
|
||||
? advancedCustomStats.routeTypeLabels.join(', ')
|
||||
: undefined
|
||||
|
||||
// Get all models list
|
||||
@@ -2800,10 +2800,10 @@ export function ChannelMutateDrawer({
|
||||
key={label}
|
||||
variant='outline'
|
||||
className='max-w-[12rem]'
|
||||
title={t(label)}
|
||||
title={label}
|
||||
>
|
||||
<span className='truncate'>
|
||||
{t(label)}
|
||||
{label}
|
||||
</span>
|
||||
</Badge>
|
||||
)
|
||||
|
||||
@@ -26,6 +26,7 @@ import type {
|
||||
|
||||
export const CHANNEL_TYPE_ADVANCED_CUSTOM = 58
|
||||
export const ADVANCED_CUSTOM_MODEL_LIST_PATH = '/v1/models'
|
||||
export const ADVANCED_CUSTOM_MODEL_LIST_LABEL = 'OpenAI Models'
|
||||
|
||||
export const ADVANCED_CUSTOM_CONVERTER_OPTIONS: Array<{
|
||||
value: AdvancedCustomConverter
|
||||
@@ -88,6 +89,7 @@ export const ADVANCED_CUSTOM_AUTH_MODE_OPTIONS: Array<{
|
||||
|
||||
export type AdvancedCustomIncomingPathOption = {
|
||||
value: string
|
||||
/** Official API route name. Render verbatim instead of passing it to i18n. */
|
||||
label: string
|
||||
}
|
||||
|
||||
@@ -107,7 +109,7 @@ export const ADVANCED_CUSTOM_INCOMING_PATH_OPTIONS: AdvancedCustomIncomingPathOp
|
||||
},
|
||||
{
|
||||
value: ADVANCED_CUSTOM_MODEL_LIST_PATH,
|
||||
label: 'OpenAI Models',
|
||||
label: ADVANCED_CUSTOM_MODEL_LIST_LABEL,
|
||||
},
|
||||
{
|
||||
value: '/v1/embeddings',
|
||||
@@ -165,7 +167,7 @@ export const ADVANCED_CUSTOM_INCOMING_PATH_OPTIONS: AdvancedCustomIncomingPathOp
|
||||
|
||||
const ADVANCED_CUSTOM_ROUTE_SUMMARY_LABELS: Record<string, string> = {
|
||||
'/v1/chat/completions': 'OpenAI Chat',
|
||||
[ADVANCED_CUSTOM_MODEL_LIST_PATH]: 'OpenAI Models',
|
||||
[ADVANCED_CUSTOM_MODEL_LIST_PATH]: ADVANCED_CUSTOM_MODEL_LIST_LABEL,
|
||||
}
|
||||
|
||||
export type AdvancedCustomValidationError = {
|
||||
|
||||
Vendored
-16
@@ -818,7 +818,6 @@
|
||||
"Classic (Legacy Frontend)": "Classic (Legacy Frontend)",
|
||||
"Claude": "Claude",
|
||||
"Claude CLI Header Passthrough": "Claude CLI Header Passthrough",
|
||||
"Claude Messages": "Claude Messages",
|
||||
"Clean": "Clean",
|
||||
"Clean history logs": "Clean history logs",
|
||||
"Clean logs": "Clean logs",
|
||||
@@ -2071,9 +2070,6 @@
|
||||
"GC executed": "GC executed",
|
||||
"GC execution failed": "GC execution failed",
|
||||
"Gemini": "Gemini",
|
||||
"Gemini Batch Embed Contents": "Gemini Batch Embed Contents",
|
||||
"Gemini Embed Content": "Gemini Embed Content",
|
||||
"Gemini Generate Content": "Gemini Generate Content",
|
||||
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content to OpenAI Chat",
|
||||
"Gemini Image 4K": "Gemini Image 4K",
|
||||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.",
|
||||
@@ -3105,29 +3101,17 @@
|
||||
"Open theme settings": "Open theme settings",
|
||||
"Open weights": "Open weights",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI Audio Speech": "OpenAI Audio Speech",
|
||||
"OpenAI Audio Transcriptions": "OpenAI Audio Transcriptions",
|
||||
"OpenAI Audio Translations": "OpenAI Audio Translations",
|
||||
"OpenAI Chat Completions": "OpenAI Chat Completions",
|
||||
"OpenAI Chat to Anthropic Messages": "OpenAI Chat to Anthropic Messages",
|
||||
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat to Gemini Generate Content",
|
||||
"OpenAI Chat to OpenAI Responses": "OpenAI Chat to OpenAI Responses",
|
||||
"OpenAI Compatible": "OpenAI Compatible",
|
||||
"OpenAI Completions": "OpenAI Completions",
|
||||
"OpenAI Embeddings": "OpenAI Embeddings",
|
||||
"OpenAI Image Edits": "OpenAI Image Edits",
|
||||
"OpenAI Image Generations": "OpenAI Image Generations",
|
||||
"OpenAI Models": "OpenAI Models",
|
||||
"OpenAI Models route does not support client model rules": "OpenAI Models route does not support client model rules",
|
||||
"OpenAI Models route is required to enable upstream model checks": "OpenAI Models route is required to enable upstream model checks",
|
||||
"OpenAI Models route must use native forwarding": "OpenAI Models route must use native forwarding",
|
||||
"OpenAI Models upstream path must not contain {model}": "OpenAI Models upstream path must not contain {model}",
|
||||
"OpenAI Organization": "OpenAI Organization",
|
||||
"OpenAI Organization ID (optional)": "OpenAI Organization ID (optional)",
|
||||
"OpenAI Realtime": "OpenAI Realtime",
|
||||
"OpenAI Rerank": "OpenAI Rerank",
|
||||
"OpenAI Responses": "OpenAI Responses",
|
||||
"OpenAI Responses Compact": "OpenAI Responses Compact",
|
||||
"OpenAI Responses to Gemini Generate Content": "OpenAI Responses to Gemini Generate Content",
|
||||
"OpenAI Responses to OpenAI Chat": "OpenAI Responses to OpenAI Chat",
|
||||
"OpenAI, Anthropic, etc.": "OpenAI, Anthropic, etc.",
|
||||
|
||||
Vendored
-16
@@ -818,7 +818,6 @@
|
||||
"Classic (Legacy Frontend)": "Classique (Ancien frontend)",
|
||||
"Claude": "Claude",
|
||||
"Claude CLI Header Passthrough": "Passthrough en-tête Claude CLI",
|
||||
"Claude Messages": "Claude Messages",
|
||||
"Clean": "Sans conflit",
|
||||
"Clean history logs": "Nettoyer les journaux d'historique",
|
||||
"Clean logs": "Nettoyer les logs",
|
||||
@@ -2071,9 +2070,6 @@
|
||||
"GC executed": "GC exécuté",
|
||||
"GC execution failed": "Échec de l'exécution du GC",
|
||||
"Gemini": "Gemini",
|
||||
"Gemini Batch Embed Contents": "Gemini Batch Embed Contents",
|
||||
"Gemini Embed Content": "Gemini Embed Content",
|
||||
"Gemini Generate Content": "Gemini Generate Content",
|
||||
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content vers OpenAI Chat",
|
||||
"Gemini Image 4K": "Gemini Image 4K",
|
||||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "Gemini continuera à détecter automatiquement le mode de pensée même avec l'adaptateur désactivé. Activez ceci uniquement lorsque vous avez besoin d'un contrôle plus fin sur la tarification et le budget.",
|
||||
@@ -3105,29 +3101,17 @@
|
||||
"Open theme settings": "Ouvrir les paramètres du thème",
|
||||
"Open weights": "Poids ouverts",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI Audio Speech": "OpenAI Audio Speech",
|
||||
"OpenAI Audio Transcriptions": "OpenAI Audio Transcriptions",
|
||||
"OpenAI Audio Translations": "OpenAI Audio Translations",
|
||||
"OpenAI Chat Completions": "OpenAI Chat Completions",
|
||||
"OpenAI Chat to Anthropic Messages": "OpenAI Chat vers Anthropic Messages",
|
||||
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat vers Gemini Generate Content",
|
||||
"OpenAI Chat to OpenAI Responses": "OpenAI Chat vers OpenAI Responses",
|
||||
"OpenAI Compatible": "Compatible OpenAI",
|
||||
"OpenAI Completions": "OpenAI Completions",
|
||||
"OpenAI Embeddings": "OpenAI Embeddings",
|
||||
"OpenAI Image Edits": "OpenAI Image Edits",
|
||||
"OpenAI Image Generations": "OpenAI Image Generations",
|
||||
"OpenAI Models": "Modèles OpenAI",
|
||||
"OpenAI Models route does not support client model rules": "La route Modèles OpenAI ne prend pas en charge les règles de modèles clients",
|
||||
"OpenAI Models route is required to enable upstream model checks": "La route Modèles OpenAI est requise pour activer la vérification des modèles en amont",
|
||||
"OpenAI Models route must use native forwarding": "La route Modèles OpenAI doit utiliser le transfert natif",
|
||||
"OpenAI Models upstream path must not contain {model}": "Le chemin amont de la route Modèles OpenAI ne doit pas contenir {model}",
|
||||
"OpenAI Organization": "Organisation OpenAI",
|
||||
"OpenAI Organization ID (optional)": "Identifiant d'organisation OpenAI (optionnel)",
|
||||
"OpenAI Realtime": "OpenAI Realtime",
|
||||
"OpenAI Rerank": "OpenAI Rerank",
|
||||
"OpenAI Responses": "OpenAI Responses",
|
||||
"OpenAI Responses Compact": "OpenAI Responses Compact",
|
||||
"OpenAI Responses to Gemini Generate Content": "OpenAI Responses vers Gemini Generate Content",
|
||||
"OpenAI Responses to OpenAI Chat": "OpenAI Responses vers OpenAI Chat",
|
||||
"OpenAI, Anthropic, etc.": "OpenAI, Anthropic, etc.",
|
||||
|
||||
Vendored
-16
@@ -818,7 +818,6 @@
|
||||
"Classic (Legacy Frontend)": "クラシック(旧フロントエンド)",
|
||||
"Claude": "Claude",
|
||||
"Claude CLI Header Passthrough": "Claude CLI ヘッダーパススルー",
|
||||
"Claude Messages": "Claude メッセージ",
|
||||
"Clean": "問題なし",
|
||||
"Clean history logs": "履歴ログをクリーンアップ",
|
||||
"Clean logs": "ログをクリア",
|
||||
@@ -2071,9 +2070,6 @@
|
||||
"GC executed": "GC 実行完了",
|
||||
"GC execution failed": "GC 実行失敗",
|
||||
"Gemini": "Gemini",
|
||||
"Gemini Batch Embed Contents": "Gemini 一括埋め込みコンテンツ",
|
||||
"Gemini Embed Content": "Gemini 埋め込みコンテンツ",
|
||||
"Gemini Generate Content": "Gemini コンテンツ生成",
|
||||
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content から OpenAI Chat",
|
||||
"Gemini Image 4K": "Gemini Image 4K",
|
||||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "アダプターが無効になっていても、Geminiは思考モードを自動検出します。価格設定と予算編成をより細かく制御する必要がある場合にのみ、これを有効にしてください。",
|
||||
@@ -3105,29 +3101,17 @@
|
||||
"Open theme settings": "テーマ設定を開く",
|
||||
"Open weights": "公開ウェイト",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI Audio Speech": "OpenAI 音声生成",
|
||||
"OpenAI Audio Transcriptions": "OpenAI 音声文字起こし",
|
||||
"OpenAI Audio Translations": "OpenAI 音声翻訳",
|
||||
"OpenAI Chat Completions": "OpenAI チャット補完",
|
||||
"OpenAI Chat to Anthropic Messages": "OpenAI Chat から Anthropic Messages",
|
||||
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat から Gemini Generate Content",
|
||||
"OpenAI Chat to OpenAI Responses": "OpenAI Chat から OpenAI Responses",
|
||||
"OpenAI Compatible": "OpenAI互換",
|
||||
"OpenAI Completions": "OpenAI 補完",
|
||||
"OpenAI Embeddings": "OpenAI 埋め込み",
|
||||
"OpenAI Image Edits": "OpenAI 画像編集",
|
||||
"OpenAI Image Generations": "OpenAI 画像生成",
|
||||
"OpenAI Models": "OpenAI モデル",
|
||||
"OpenAI Models route does not support client model rules": "OpenAI モデルルートはクライアントモデルルールに対応していません",
|
||||
"OpenAI Models route is required to enable upstream model checks": "アップストリームモデルの確認を有効にするには OpenAI モデルルートが必要です",
|
||||
"OpenAI Models route must use native forwarding": "OpenAI モデルルートではネイティブ転送を使用する必要があります",
|
||||
"OpenAI Models upstream path must not contain {model}": "OpenAI モデルのアップストリームパスに {model} を含めることはできません",
|
||||
"OpenAI Organization": "OpenAI組織",
|
||||
"OpenAI Organization ID (optional)": "OpenAI 組織 ID (オプション)",
|
||||
"OpenAI Realtime": "OpenAI リアルタイム",
|
||||
"OpenAI Rerank": "OpenAI 再ランク付け",
|
||||
"OpenAI Responses": "OpenAI レスポンス",
|
||||
"OpenAI Responses Compact": "OpenAI レスポンス圧縮",
|
||||
"OpenAI Responses to Gemini Generate Content": "OpenAI Responses から Gemini Generate Content",
|
||||
"OpenAI Responses to OpenAI Chat": "OpenAI Responses から OpenAI Chat",
|
||||
"OpenAI, Anthropic, etc.": "OpenAI、Anthropicなど",
|
||||
|
||||
Vendored
-16
@@ -818,7 +818,6 @@
|
||||
"Classic (Legacy Frontend)": "Классический (Старый интерфейс)",
|
||||
"Claude": "Клод",
|
||||
"Claude CLI Header Passthrough": "Проброс заголовков Claude CLI",
|
||||
"Claude Messages": "Сообщения Claude",
|
||||
"Clean": "Без конфликта",
|
||||
"Clean history logs": "Очистить журналы истории",
|
||||
"Clean logs": "Очистить логи",
|
||||
@@ -2071,9 +2070,6 @@
|
||||
"GC executed": "GC выполнен",
|
||||
"GC execution failed": "Ошибка выполнения GC",
|
||||
"Gemini": "Gemini",
|
||||
"Gemini Batch Embed Contents": "Пакетные embeddings Gemini",
|
||||
"Gemini Embed Content": "Embedding контента Gemini",
|
||||
"Gemini Generate Content": "Генерация контента Gemini",
|
||||
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content в OpenAI Chat",
|
||||
"Gemini Image 4K": "Gemini Image 4K",
|
||||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "Gemini продолжит автоматически определять режим мышления, даже если адаптер отключен. Включайте это только тогда, когда вам нужен более тонкий контроль над ценообразованием и бюджетированием.",
|
||||
@@ -3105,29 +3101,17 @@
|
||||
"Open theme settings": "Открыть настройки темы",
|
||||
"Open weights": "Открытые веса",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI Audio Speech": "Синтез речи OpenAI",
|
||||
"OpenAI Audio Transcriptions": "Транскрибация аудио OpenAI",
|
||||
"OpenAI Audio Translations": "Перевод аудио OpenAI",
|
||||
"OpenAI Chat Completions": "Чат-завершения OpenAI",
|
||||
"OpenAI Chat to Anthropic Messages": "OpenAI Chat в Anthropic Messages",
|
||||
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat в Gemini Generate Content",
|
||||
"OpenAI Chat to OpenAI Responses": "OpenAI Chat в OpenAI Responses",
|
||||
"OpenAI Compatible": "Совместимо с OpenAI",
|
||||
"OpenAI Completions": "Завершения OpenAI",
|
||||
"OpenAI Embeddings": "Векторные представления OpenAI",
|
||||
"OpenAI Image Edits": "Редактирование изображений OpenAI",
|
||||
"OpenAI Image Generations": "Генерация изображений OpenAI",
|
||||
"OpenAI Models": "Модели OpenAI",
|
||||
"OpenAI Models route does not support client model rules": "Маршрут моделей OpenAI не поддерживает правила клиентских моделей",
|
||||
"OpenAI Models route is required to enable upstream model checks": "Для проверки моделей вышестоящего сервиса требуется маршрут моделей OpenAI",
|
||||
"OpenAI Models route must use native forwarding": "Маршрут моделей OpenAI должен использовать прямую передачу",
|
||||
"OpenAI Models upstream path must not contain {model}": "Путь вышестоящего сервиса для моделей OpenAI не должен содержать {model}",
|
||||
"OpenAI Organization": "Организация OpenAI",
|
||||
"OpenAI Organization ID (optional)": "Идентификатор организации OpenAI (необязательно)",
|
||||
"OpenAI Realtime": "Реальное время OpenAI",
|
||||
"OpenAI Rerank": "Реранжирование OpenAI",
|
||||
"OpenAI Responses": "Ответы OpenAI",
|
||||
"OpenAI Responses Compact": "Компактные ответы OpenAI",
|
||||
"OpenAI Responses to Gemini Generate Content": "OpenAI Responses в Gemini Generate Content",
|
||||
"OpenAI Responses to OpenAI Chat": "OpenAI Responses в OpenAI Chat",
|
||||
"OpenAI, Anthropic, etc.": "OpenAI, Anthropic и т.д.",
|
||||
|
||||
Vendored
-16
@@ -818,7 +818,6 @@
|
||||
"Classic (Legacy Frontend)": "Cổ điển (Frontend cũ)",
|
||||
"Claude": "Claude",
|
||||
"Claude CLI Header Passthrough": "Chuyển tiếp header Claude CLI",
|
||||
"Claude Messages": "Claude Messages",
|
||||
"Clean": "Không xung đột",
|
||||
"Clean history logs": "Xóa nhật ký lịch sử",
|
||||
"Clean logs": "Dọn dẹp nhật ký",
|
||||
@@ -2071,9 +2070,6 @@
|
||||
"GC executed": "GC đã thực thi",
|
||||
"GC execution failed": "Thực thi GC thất bại",
|
||||
"Gemini": "Song Tử",
|
||||
"Gemini Batch Embed Contents": "Gemini Batch Embed Contents",
|
||||
"Gemini Embed Content": "Gemini Embed Content",
|
||||
"Gemini Generate Content": "Gemini Generate Content",
|
||||
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content sang OpenAI Chat",
|
||||
"Gemini Image 4K": "Gemini Image 4K",
|
||||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "Gemini sẽ tiếp tục tự động phát hiện chế độ suy nghĩ ngay cả khi bộ điều hợp bị tắt. Chỉ bật tính năng này khi bạn cần kiểm soát chi tiết hơn về giá cả và lập ngân sách.",
|
||||
@@ -3105,29 +3101,17 @@
|
||||
"Open theme settings": "Mở cài đặt giao diện",
|
||||
"Open weights": "Trọng số mở",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI Audio Speech": "OpenAI Audio Speech",
|
||||
"OpenAI Audio Transcriptions": "OpenAI Audio Transcriptions",
|
||||
"OpenAI Audio Translations": "OpenAI Audio Translations",
|
||||
"OpenAI Chat Completions": "OpenAI Chat Completions",
|
||||
"OpenAI Chat to Anthropic Messages": "OpenAI Chat sang Anthropic Messages",
|
||||
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat sang Gemini Generate Content",
|
||||
"OpenAI Chat to OpenAI Responses": "OpenAI Chat sang OpenAI Responses",
|
||||
"OpenAI Compatible": "Tương thích OpenAI",
|
||||
"OpenAI Completions": "OpenAI Completions",
|
||||
"OpenAI Embeddings": "OpenAI Embeddings",
|
||||
"OpenAI Image Edits": "OpenAI Image Edits",
|
||||
"OpenAI Image Generations": "OpenAI Image Generations",
|
||||
"OpenAI Models": "Mô hình OpenAI",
|
||||
"OpenAI Models route does not support client model rules": "Tuyến Mô hình OpenAI không hỗ trợ quy tắc mô hình phía máy khách",
|
||||
"OpenAI Models route is required to enable upstream model checks": "Cần có tuyến Mô hình OpenAI để bật kiểm tra mô hình thượng nguồn",
|
||||
"OpenAI Models route must use native forwarding": "Tuyến Mô hình OpenAI phải dùng chuyển tiếp nguyên bản",
|
||||
"OpenAI Models upstream path must not contain {model}": "Đường dẫn thượng nguồn của Mô hình OpenAI không được chứa {model}",
|
||||
"OpenAI Organization": "Tổ chức OpenAI",
|
||||
"OpenAI Organization ID (optional)": "ID Tổ chức OpenAI (tùy chọn)",
|
||||
"OpenAI Realtime": "OpenAI Realtime",
|
||||
"OpenAI Rerank": "OpenAI Rerank",
|
||||
"OpenAI Responses": "OpenAI Responses",
|
||||
"OpenAI Responses Compact": "OpenAI Responses Compact",
|
||||
"OpenAI Responses to Gemini Generate Content": "OpenAI Responses sang Gemini Generate Content",
|
||||
"OpenAI Responses to OpenAI Chat": "OpenAI Responses sang OpenAI Chat",
|
||||
"OpenAI, Anthropic, etc.": "OpenAI, Anthropic, v.v.",
|
||||
|
||||
-16
@@ -818,7 +818,6 @@
|
||||
"Classic (Legacy Frontend)": "經典前端",
|
||||
"Claude": "Claude",
|
||||
"Claude CLI Header Passthrough": "Claude CLI 請求頭透傳",
|
||||
"Claude Messages": "Claude 訊息",
|
||||
"Clean": "無衝突",
|
||||
"Clean history logs": "清理歷史日誌",
|
||||
"Clean logs": "清理日誌",
|
||||
@@ -2071,9 +2070,6 @@
|
||||
"GC executed": "GC 已執行",
|
||||
"GC execution failed": "GC 執行失敗",
|
||||
"Gemini": "Gemini",
|
||||
"Gemini Batch Embed Contents": "Gemini 大量嵌入內容",
|
||||
"Gemini Embed Content": "Gemini 嵌入內容",
|
||||
"Gemini Generate Content": "Gemini 內容生成",
|
||||
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content 到 OpenAI Chat",
|
||||
"Gemini Image 4K": "Gemini 圖片 4K",
|
||||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "即使停用配接器,Gemini 也會繼續自動偵測思考模式。僅當您需要對定價和預算進行更精細的控制時才啟用此選項。",
|
||||
@@ -3105,29 +3101,17 @@
|
||||
"Open theme settings": "打開主題設定",
|
||||
"Open weights": "開放權重",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI Audio Speech": "OpenAI 語音生成",
|
||||
"OpenAI Audio Transcriptions": "OpenAI 音頻轉錄",
|
||||
"OpenAI Audio Translations": "OpenAI 音頻翻譯",
|
||||
"OpenAI Chat Completions": "OpenAI 聊天補全",
|
||||
"OpenAI Chat to Anthropic Messages": "OpenAI Chat 到 Anthropic Messages",
|
||||
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat 到 Gemini Generate Content",
|
||||
"OpenAI Chat to OpenAI Responses": "OpenAI Chat 到 OpenAI Responses",
|
||||
"OpenAI Compatible": "兼容 OpenAI",
|
||||
"OpenAI Completions": "OpenAI 文字補全",
|
||||
"OpenAI Embeddings": "OpenAI 嵌入",
|
||||
"OpenAI Image Edits": "OpenAI 圖像編輯",
|
||||
"OpenAI Image Generations": "OpenAI 圖像生成",
|
||||
"OpenAI Models": "OpenAI 模型",
|
||||
"OpenAI Models route does not support client model rules": "OpenAI 模型路由不支援用戶端模型規則",
|
||||
"OpenAI Models route is required to enable upstream model checks": "啟用上游模型檢查必須設定 OpenAI 模型路由",
|
||||
"OpenAI Models route must use native forwarding": "OpenAI 模型路由必須使用原生轉發",
|
||||
"OpenAI Models upstream path must not contain {model}": "OpenAI 模型上游路徑不得包含 {model}",
|
||||
"OpenAI Organization": "OpenAI 組織",
|
||||
"OpenAI Organization ID (optional)": "OpenAI 組織 ID(可選)",
|
||||
"OpenAI Realtime": "OpenAI 實時",
|
||||
"OpenAI Rerank": "OpenAI 重排序",
|
||||
"OpenAI Responses": "OpenAI 回應",
|
||||
"OpenAI Responses Compact": "OpenAI 回應壓縮",
|
||||
"OpenAI Responses to Gemini Generate Content": "OpenAI Responses 轉 Gemini Generate Content",
|
||||
"OpenAI Responses to OpenAI Chat": "OpenAI Responses 到 OpenAI Chat",
|
||||
"OpenAI, Anthropic, etc.": "OpenAI、Anthropic 等",
|
||||
|
||||
Vendored
-16
@@ -818,7 +818,6 @@
|
||||
"Classic (Legacy Frontend)": "经典前端",
|
||||
"Claude": "Claude",
|
||||
"Claude CLI Header Passthrough": "Claude CLI 请求头透传",
|
||||
"Claude Messages": "Claude 消息",
|
||||
"Clean": "无冲突",
|
||||
"Clean history logs": "清理历史日志",
|
||||
"Clean logs": "清理日志",
|
||||
@@ -2071,9 +2070,6 @@
|
||||
"GC executed": "GC 已执行",
|
||||
"GC execution failed": "GC 执行失败",
|
||||
"Gemini": "Gemini",
|
||||
"Gemini Batch Embed Contents": "Gemini 批量嵌入内容",
|
||||
"Gemini Embed Content": "Gemini 嵌入内容",
|
||||
"Gemini Generate Content": "Gemini 内容生成",
|
||||
"Gemini Generate Content to OpenAI Chat": "Gemini Generate Content 到 OpenAI Chat",
|
||||
"Gemini Image 4K": "Gemini 图片 4K",
|
||||
"Gemini will continue to auto-detect thinking mode even with the adapter disabled. Enable this only when you need finer control over pricing and budgeting.": "即使禁用适配器,Gemini 也会继续自动检测思维模式。仅当您需要对定价和预算进行更精细的控制时才启用此选项。",
|
||||
@@ -3105,29 +3101,17 @@
|
||||
"Open theme settings": "打开主题设置",
|
||||
"Open weights": "开放权重",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI Audio Speech": "OpenAI 语音生成",
|
||||
"OpenAI Audio Transcriptions": "OpenAI 音频转录",
|
||||
"OpenAI Audio Translations": "OpenAI 音频翻译",
|
||||
"OpenAI Chat Completions": "OpenAI 聊天补全",
|
||||
"OpenAI Chat to Anthropic Messages": "OpenAI Chat 到 Anthropic Messages",
|
||||
"OpenAI Chat to Gemini Generate Content": "OpenAI Chat 到 Gemini Generate Content",
|
||||
"OpenAI Chat to OpenAI Responses": "OpenAI Chat 到 OpenAI Responses",
|
||||
"OpenAI Compatible": "兼容 OpenAI",
|
||||
"OpenAI Completions": "OpenAI 文本补全",
|
||||
"OpenAI Embeddings": "OpenAI 嵌入",
|
||||
"OpenAI Image Edits": "OpenAI 图像编辑",
|
||||
"OpenAI Image Generations": "OpenAI 图像生成",
|
||||
"OpenAI Models": "OpenAI 模型",
|
||||
"OpenAI Models route does not support client model rules": "OpenAI 模型路由不支持客户端模型规则",
|
||||
"OpenAI Models route is required to enable upstream model checks": "启用上游模型检查必须配置 OpenAI 模型路由",
|
||||
"OpenAI Models route must use native forwarding": "OpenAI 模型路由必须使用原生转发",
|
||||
"OpenAI Models upstream path must not contain {model}": "OpenAI 模型上游路径不能包含 {model}",
|
||||
"OpenAI Organization": "OpenAI 组织",
|
||||
"OpenAI Organization ID (optional)": "OpenAI 组织 ID(可选)",
|
||||
"OpenAI Realtime": "OpenAI 实时",
|
||||
"OpenAI Rerank": "OpenAI 重排序",
|
||||
"OpenAI Responses": "OpenAI 响应",
|
||||
"OpenAI Responses Compact": "OpenAI 响应压缩",
|
||||
"OpenAI Responses to Gemini Generate Content": "OpenAI Responses 转 Gemini Generate Content",
|
||||
"OpenAI Responses to OpenAI Chat": "OpenAI Responses 到 OpenAI Chat",
|
||||
"OpenAI, Anthropic, etc.": "OpenAI、Anthropic 等",
|
||||
|
||||
Vendored
-1
@@ -531,7 +531,6 @@ export const STATIC_I18N_KEYS = [
|
||||
'Batch detection complete: {{channels}} channels, {{add}} to add, {{remove}} to remove, {{fails}} failed',
|
||||
|
||||
// Advanced Custom model discovery
|
||||
'OpenAI Models',
|
||||
'Only one OpenAI Models route is allowed',
|
||||
'OpenAI Models route does not support client model rules',
|
||||
'OpenAI Models route must use native forwarding',
|
||||
|
||||
Reference in New Issue
Block a user