diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index 30842a2780..92f18b390c 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "المواضيع", @@ -804,6 +809,11 @@ "when": "تخفيض التكلفة هو على رأس أولوياتك.", "avoid": "بيانات التسعير مفقودة أو قديمة.", "example": "وظائف الخلفية أو الدُفعات حيث تكون التكلفة الأقل مفضلة." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "جارٍ تحميل لوحة تحكم MCP...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "فشل في تبديل المزامنة التلقائية", "allModelsAlreadyImported": "جميع النماذج مستوردة بالفعل", "noNewModelsToImport": "لا توجد نماذج جديدة للاستيراد — جميع النماذج موجودة بالفعل في السجل أو قائمة النماذج المخصصة", - "skippingExistingModels": "تخطي {count} نماذج موجودة" + "skippingExistingModels": "تخطي {count} نماذج موجودة", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "الإعدادات", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "إذا اختلف مقدمو الخدمة من حيث الجودة/التكلفة، فابدأ بـ Cost Opt للعمل في الخلفية والأقل استخدامًا للارتداء المتوازن.", "comboDefaultsGuideTitle": "كيفية ضبط إعدادات التحرير والسرد الافتراضية", "comboDefaultsGuideHint1": "اجعل عمليات إعادة المحاولة منخفضة في التدفقات ذات زمن الوصول المنخفض؛ زيادة المهلة فقط لمهام الجيل الطويل.", - "comboDefaultsGuideHint2": "استخدم تجاوزات الموفر عندما يحتاج أحد الموفرين إلى سلوك مهلة/إعادة محاولة مختلف عن الإعدادات الافتراضية العامة." + "comboDefaultsGuideHint2": "استخدم تجاوزات الموفر عندما يحتاج أحد الموفرين إلى سلوك مهلة/إعادة محاولة مختلف عن الإعدادات الافتراضية العامة.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "مترجم", diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json index 3d2b7e3e8c..8ee3ab62a5 100644 --- a/src/i18n/messages/bg.json +++ b/src/i18n/messages/bg.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Теми", @@ -804,6 +809,11 @@ "when": "Намаляването на разходите е вашият основен приоритет.", "avoid": "Ценовите данни липсват или са остарели.", "example": "Задачи на заден фон или партида, при които се предпочитат по - ниски разходи." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Зареждане на таблото за управление на MCP...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Неуспешно превключване на автоматичното синхронизиране", "allModelsAlreadyImported": "Всички модели вече са импортирани", "noNewModelsToImport": "Няма нови модели за импортиране — всички модели вече са в регистъра или списъка с персонализирани модели", - "skippingExistingModels": "Пропускане на {count} съществуващи модела" + "skippingExistingModels": "Пропускане на {count} съществуващи модела", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Настройки", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Ако доставчиците се различават по отношение на качество/цена, започнете с Cost Opt за фонова работа и Least Used за балансирано износване.", "comboDefaultsGuideTitle": "Как да настроите настройките по подразбиране на комбинацията", "comboDefaultsGuideHint1": "Поддържайте ниски повторни опити в потоци с ниска латентност; увеличете времето за изчакване само за задачи с дълго генериране.", - "comboDefaultsGuideHint2": "Използвайте замени на доставчика, когато един доставчик се нуждае от различно поведение при изчакване/повторен опит от глобалните настройки по подразбиране." + "comboDefaultsGuideHint2": "Използвайте замени на доставчика, когато един доставчик се нуждае от различно поведение при изчакване/повторен опит от глобалните настройки по подразбиране.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Преводач", diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json index eaa3f5f1bd..35ff041d95 100644 --- a/src/i18n/messages/cs.json +++ b/src/i18n/messages/cs.json @@ -187,7 +187,12 @@ "themeCyan": "Azurová", "cliToolsShort": "Nástroje", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Motivy", @@ -855,6 +860,11 @@ "when": "Snížení nákladů je vaší nejvyšší prioritou.", "avoid": "Údaje o cenách chybí nebo jsou zastaralé.", "example": "Úlohy na pozadí nebo dávkové úlohy, kde se upřednostňují nižší náklady." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -948,6 +958,13 @@ "tip1": "Zajistěte cenové pokrytí pro všechny vybrané modely.", "tip2": "Pro náročné výzvy si pořiďte kvalitní záložní řešení.", "tip3": "Používejte pro dávkové/úlohy na pozadí, kde jsou hlavním klíčovým ukazatelem výkonnosti náklady." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Volný zásobník (0 $)", @@ -1071,7 +1088,25 @@ "a2aQuickStartStep3": "Sledujte a ovládejte úkoly pomocí příkazů `tasks/get` a `tasks/cancel`.", "completionsLegacy": "Completions (Zastaralé)", "completionsLegacyDesc": "Zastaralé OpenAI text completion – akceptuje oba formáty, prompt string i messages array.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "endpoints": { "tabProxy": "Koncová Proxy", @@ -1657,7 +1692,13 @@ "autoSyncToggleFailed": "Nepodařilo se přepnout automatickou synchronizaci", "allModelsAlreadyImported": "Všechny modely jsou již importovány", "noNewModelsToImport": "Žádné nové modely k importu — všechny modely jsou již v registru nebo v seznamu vlastních modelů", - "skippingExistingModels": "Přeskakování {count} existujících modelů" + "skippingExistingModels": "Přeskakování {count} existujících modelů", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Nastavení", @@ -2066,7 +2107,10 @@ "customPricingNote": "Výchozí ceny pro konkrétní modely můžete přepsat. Vlastní přepsání má přednost před automaticky zjištěnými cenami.", "editPricing": "Upravit ceny", "viewFullDetails": "Zobrazit všechny podrobnosti", - "themeCoral": "Korál" + "themeCoral": "Korál", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Překladatel", diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json index 577ffceed5..a0fb8cb24c 100644 --- a/src/i18n/messages/da.json +++ b/src/i18n/messages/da.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Temaer", @@ -804,6 +809,11 @@ "when": "Omkostningsreduktion er din højeste prioritet.", "avoid": "Prissætningsdata mangler eller er forældede.", "example": "Baggrunds- eller batchjob, hvor lavere omkostninger foretrækkes." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Indlæser MCP-dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Automatisk synkronisering kunne ikke slås til eller fra", "allModelsAlreadyImported": "Alle modeller er allerede importeret", "noNewModelsToImport": "Ingen nye modeller at importere — alle modeller findes allerede i registreret eller brugerdefineret liste", - "skippingExistingModels": "Springer {count} eksisterende modeller over" + "skippingExistingModels": "Springer {count} eksisterende modeller over", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Indstillinger", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Hvis udbydere varierer i kvalitet/omkostninger, start med Cost Opt for baggrundsarbejde og Mindst brugt for balanceret slid.", "comboDefaultsGuideTitle": "Sådan indstiller du combo-standarder", "comboDefaultsGuideHint1": "Hold lave genforsøg i flows med lav latens; øg kun timeout for lange generationsopgaver.", - "comboDefaultsGuideHint2": "Brug udbydertilsidesættelser, når en udbyder har brug for en anden timeout-/genforsøgsadfærd end globale standardindstillinger." + "comboDefaultsGuideHint2": "Brug udbydertilsidesættelser, når en udbyder har brug for en anden timeout-/genforsøgsadfærd end globale standardindstillinger.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Oversætter", diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index b19a2b396d..bf33f669d0 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themen", @@ -804,6 +809,11 @@ "when": "Kostenreduzierung steht für Sie an erster Stelle.", "avoid": "Preisdaten fehlen oder sind veraltet.", "example": "Hintergrund- oder Batch-Jobs, bei denen geringere Kosten bevorzugt werden." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Sichere Preisabdeckung für alle ausgewählten Modelle.", "tip2": "Behalte einen Qualitäts-Fallback für schwierige Prompts.", "tip3": "Ideal für Batch/Hintergrundjobs, bei denen Kosten das Haupt-KPI sind." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "MCP-Dashboard wird geladen...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Auto-Sync umschalten fehlgeschlagen", "allModelsAlreadyImported": "Alle Modelle sind bereits importiert", "noNewModelsToImport": "Keine neuen Modelle zum Importieren — alle Modelle sind bereits in der Registry oder der Liste benutzerdefinierter Modelle", - "skippingExistingModels": "Überspringe {count} vorhandene Modelle" + "skippingExistingModels": "Überspringe {count} vorhandene Modelle", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Einstellungen", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Wenn sich die Qualität/Kosten der Anbieter unterscheiden, beginnen Sie mit „Cost Opt“ für Hintergrundarbeit und „Least Used“ für ausgewogene Abnutzung.", "comboDefaultsGuideTitle": "So optimieren Sie die Combo-Standardeinstellungen", "comboDefaultsGuideHint1": "Halten Sie die Wiederholungsversuche bei Datenflüssen mit geringer Latenz gering. Erhöhen Sie das Timeout nur für Aufgaben mit langer Generierung.", - "comboDefaultsGuideHint2": "Verwenden Sie Anbieterüberschreibungen, wenn ein Anbieter ein anderes Timeout-/Wiederholungsverhalten als die globalen Standardwerte benötigt." + "comboDefaultsGuideHint2": "Verwenden Sie Anbieterüberschreibungen, wenn ein Anbieter ein anderes Timeout-/Wiederholungsverhalten als die globalen Standardwerte benötigt.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Übersetzer", diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index 69cc1de900..066347091b 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -860,6 +860,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -953,6 +958,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -2978,4 +2990,4 @@ "expires": "Expires", "actions": "Actions" } -} +} \ No newline at end of file diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json index d0ae7ab9eb..9c2c26128f 100644 --- a/src/i18n/messages/es.json +++ b/src/i18n/messages/es.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Temas", @@ -804,6 +809,11 @@ "when": "La reducción de costos es su principal prioridad.", "avoid": "Faltan datos de precios o están desactualizados.", "example": "Trabajos en segundo plano o por lotes donde se prefiere un menor costo." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Asegura cobertura de precios para todos los modelos seleccionados.", "tip2": "Mantén un fallback de calidad para prompts difíciles.", "tip3": "Úsala en batch/tareas de fondo donde el costo sea el KPI principal." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Crea un Quick Tunnel temporal de Cloudflare. La URL cambia después de cada reinicio." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Cargando el panel de MCP...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Error al alternar sincronización automática", "allModelsAlreadyImported": "Todos los modelos ya están importados", "noNewModelsToImport": "No hay modelos nuevos para importar — todos los modelos ya están en el registro o en la lista de modelos personalizados", - "skippingExistingModels": "Omitiendo {count} modelos existentes" + "skippingExistingModels": "Omitiendo {count} modelos existentes", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Configuración", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Si los proveedores varían en calidad/costo, comience con Opción de costo para trabajo en segundo plano y Menos usado para desgaste equilibrado.", "comboDefaultsGuideTitle": "Cómo ajustar los valores predeterminados del combo", "comboDefaultsGuideHint1": "Mantenga bajos los reintentos en flujos de baja latencia; aumente el tiempo de espera solo para tareas de larga generación.", - "comboDefaultsGuideHint2": "Utilice anulaciones de proveedores cuando un proveedor necesite un comportamiento de tiempo de espera/reintento diferente al de los valores predeterminados globales." + "comboDefaultsGuideHint2": "Utilice anulaciones de proveedores cuando un proveedor necesite un comportamiento de tiempo de espera/reintento diferente al de los valores predeterminados globales.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Traductor", diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json index f754ce9811..b3ee80d1a4 100644 --- a/src/i18n/messages/fi.json +++ b/src/i18n/messages/fi.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Teemat", @@ -804,6 +809,11 @@ "when": "Kustannusten vähentäminen on tärkein prioriteettisi.", "avoid": "Hinnoittelutiedot puuttuvat tai ovat vanhentuneet.", "example": "Tausta- tai erätyöt, joissa edullisemmat kustannukset ovat paremmat." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Ladataan MCP-hallintapaneelia...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Automaattisen synkronoinnin vaihtaminen epäonnistui", "allModelsAlreadyImported": "Kaikki mallit on jo tuotu", "noNewModelsToImport": "Ei uusia malleja tuotavaksi — kaikki mallit ovat jo rekisterissä tai mukautetulla mallilistalla", - "skippingExistingModels": "Ohitetaan {count} olemassa olevaa mallia" + "skippingExistingModels": "Ohitetaan {count} olemassa olevaa mallia", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Asetukset", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Jos palveluntarjoajat vaihtelevat laadultaan/kustannuksiltaan, aloita Cost Opt -vaihtoehdolla taustatyössä ja Vähiten käytetyllä tasapainoiseen kulumiseen.", "comboDefaultsGuideTitle": "Kuinka virittää yhdistelmäoletusasetukset", "comboDefaultsGuideHint1": "Pidä uudelleenyritykset alhaisena matalan viiveen virroissa; lisää aikakatkaisua vain pitkiä sukupolvitehtäviä varten.", - "comboDefaultsGuideHint2": "Käytä palveluntarjoajan ohituksia, kun yksi palveluntarjoaja tarvitsee erilaista aikakatkaisu-/uudelleenyritystoimintaa kuin yleiset oletusasetukset." + "comboDefaultsGuideHint2": "Käytä palveluntarjoajan ohituksia, kun yksi palveluntarjoaja tarvitsee erilaista aikakatkaisu-/uudelleenyritystoimintaa kuin yleiset oletusasetukset.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Kääntäjä", diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index 29837bbd6d..c8d1975cae 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Thèmes", @@ -804,6 +809,11 @@ "when": "La réduction des coûts est votre priorité absolue.", "avoid": "Les données de tarification sont manquantes ou obsolètes.", "example": "Travaux en arrière-plan ou par lots pour lesquels un coût inférieur est préféré." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Assure une couverture de prix pour tous les modèles sélectionnés.", "tip2": "Garde un fallback de qualité pour les prompts difficiles.", "tip3": "Idéal pour batch/tâches de fond où le coût est le KPI principal." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Chargement du tableau de bord MCP...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Échec de l'activation de la synchronisation automatique", "allModelsAlreadyImported": "Tous les modèles sont déjà importés", "noNewModelsToImport": "Aucun nouveau modèle à importer — tous les modèles sont déjà dans le registre ou la liste de modèles personnalisés", - "skippingExistingModels": "Ignorance de {count} modèles existants" + "skippingExistingModels": "Ignorance de {count} modèles existants", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Paramètres", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Si les prestataires varient en termes de qualité/coût, commencez par Opter pour le coût pour le travail de fond et par Moins utilisé pour une usure équilibrée.", "comboDefaultsGuideTitle": "Comment régler les paramètres par défaut du combo", "comboDefaultsGuideHint1": "Maintenez un faible nombre de tentatives dans les flux à faible latence ; augmentez le délai d'attente uniquement pour les tâches de génération longue.", - "comboDefaultsGuideHint2": "Utilisez les remplacements de fournisseur lorsqu'un fournisseur a besoin d'un comportement de délai d'attente/nouvelle tentative différent de celui des valeurs par défaut globales." + "comboDefaultsGuideHint2": "Utilisez les remplacements de fournisseur lorsqu'un fournisseur a besoin d'un comportement de délai d'attente/nouvelle tentative différent de celui des valeurs par défaut globales.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Traducteur", diff --git a/src/i18n/messages/he.json b/src/i18n/messages/he.json index f8e4d8c297..cbaac72aae 100644 --- a/src/i18n/messages/he.json +++ b/src/i18n/messages/he.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "החלפת הסנכרון האוטומטי נכשלה", "allModelsAlreadyImported": "כל הדגמים כבר מיובאים", "noNewModelsToImport": "אין דגמים חדשים לייבוא — כל הדגמים כבר קיימים ברישום או ברשימת הדגמים המותאמים", - "skippingExistingModels": "מדלג על {count} דגמים קיימים" + "skippingExistingModels": "מדלג על {count} דגמים קיימים", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "הגדרות", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "אם הספקים משתנים באיכות/עלות, התחל עם Cost Opt עבור עבודת רקע והפחות בשימוש עבור בלאי מאוזן.", "comboDefaultsGuideTitle": "כיצד לכוונן ברירות מחדל משולבות", "comboDefaultsGuideHint1": "שמור על ניסיונות חוזרים נמוכים בזרימות עם אחזור נמוך; להגדיל את הזמן הקצוב רק עבור משימות דור ארוך.", - "comboDefaultsGuideHint2": "השתמש בעקיפות ספק כאשר ספק אחד זקוק להתנהגות שונה של זמן קצוב/ניסיון חוזר מאשר ברירות מחדל גלובליות." + "comboDefaultsGuideHint2": "השתמש בעקיפות ספק כאשר ספק אחד זקוק להתנהגות שונה של זמן קצוב/ניסיון חוזר מאשר ברירות מחדל גלובליות.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "מתרגם", diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json index 61ebd6f26f..9a5805cad2 100644 --- a/src/i18n/messages/hi.json +++ b/src/i18n/messages/hi.json @@ -109,7 +109,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -712,6 +717,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -805,6 +815,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -928,7 +945,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1493,7 +1528,13 @@ "compatUpstreamRemoveRow": "Remove row", "allModelsAlreadyImported": "सभी मॉडल पहले से ही आयातित हैं", "noNewModelsToImport": "आयात करने के लिए कोई नए मॉडल नहीं — सभी मॉडल पहले से ही रजिस्ट्री या कस्टम मॉडल सूची में हैं", - "skippingExistingModels": "{count} मौजूदा मॉडल छोड़े जा रहे हैं" + "skippingExistingModels": "{count} मौजूदा मॉडल छोड़े जा रहे हैं", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "सेटिंग्स", @@ -1902,7 +1943,10 @@ "routingAdvancedGuideHint2": "यदि प्रदाता गुणवत्ता/लागत में भिन्न हैं, तो पृष्ठभूमि कार्य के लिए कॉस्ट ऑप्ट और संतुलित पहनावे के लिए कम से कम उपयोग से शुरुआत करें।", "comboDefaultsGuideTitle": "कॉम्बो डिफॉल्ट्स को कैसे ट्यून करें", "comboDefaultsGuideHint1": "कम-विलंबता प्रवाह में पुनः प्रयास कम रखें; केवल लंबी पीढ़ी के कार्यों के लिए टाइमआउट बढ़ाएँ।", - "comboDefaultsGuideHint2": "जब एक प्रदाता को वैश्विक डिफ़ॉल्ट की तुलना में अलग टाइमआउट/पुनः प्रयास व्यवहार की आवश्यकता होती है तो प्रदाता ओवरराइड का उपयोग करें।" + "comboDefaultsGuideHint2": "जब एक प्रदाता को वैश्विक डिफ़ॉल्ट की तुलना में अलग टाइमआउट/पुनः प्रयास व्यवहार की आवश्यकता होती है तो प्रदाता ओवरराइड का उपयोग करें।", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "अनुवादक", diff --git a/src/i18n/messages/hu.json b/src/i18n/messages/hu.json index d3499c1d9e..b5056448c6 100644 --- a/src/i18n/messages/hu.json +++ b/src/i18n/messages/hu.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Témák", @@ -804,6 +809,11 @@ "when": "A költségcsökkentés az Ön legfőbb prioritása.", "avoid": "Az árképzési adatok hiányoznak vagy elavultak.", "example": "Háttérben végzett vagy kötegelt munkák, ahol az alacsonyabb költséget részesítik előnyben." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Failed to toggle auto-sync", "allModelsAlreadyImported": "Minden modell már importálva van", "noNewModelsToImport": "Nincs új modell az importáláshoz — minden modell már a nyilvántartásban vagy az egyéni modellek listájában van", - "skippingExistingModels": "{count} meglévő modell kihagyása" + "skippingExistingModels": "{count} meglévő modell kihagyása", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Beállítások elemre", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Ha a szolgáltatók minősége/költségei eltérőek, kezdje a Cost Opt opcióval a háttérmunkához és a Least Used beállítással a kiegyensúlyozott viselet érdekében.", "comboDefaultsGuideTitle": "A kombinált alapértelmezett beállítások hangolása", "comboDefaultsGuideHint1": "Tartsa alacsonyan az újrapróbálkozásokat az alacsony késleltetésű folyamatokban; csak hosszú generációs feladatok esetén növelje az időtúllépést.", - "comboDefaultsGuideHint2": "Használja a szolgáltató felülbírálását, ha az egyik szolgáltatónak a globális alapértelmezetttől eltérő időtúllépési/újrapróbálkozási viselkedésre van szüksége." + "comboDefaultsGuideHint2": "Használja a szolgáltató felülbírálását, ha az egyik szolgáltatónak a globális alapértelmezetttől eltérő időtúllépési/újrapróbálkozási viselkedésre van szüksége.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Fordító", diff --git a/src/i18n/messages/id.json b/src/i18n/messages/id.json index 3f1bdddd83..784005db92 100644 --- a/src/i18n/messages/id.json +++ b/src/i18n/messages/id.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Gagal mengaktifkan sinkronisasi otomatis", "allModelsAlreadyImported": "Semua model sudah diimpor", "noNewModelsToImport": "Tidak ada model baru untuk diimpor — semua model sudah ada di registri atau daftar model kustom", - "skippingExistingModels": "Melewatkan {count} model yang sudah ada" + "skippingExistingModels": "Melewatkan {count} model yang sudah ada", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Pengaturan", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Jika penyedia memiliki kualitas/biaya yang berbeda-beda, mulailah dengan Cost Opt (Pilihan Biaya) untuk pekerjaan latar belakang dan Paling Sedikit Digunakan untuk pemakaian yang seimbang.", "comboDefaultsGuideTitle": "Cara menyetel default kombo", "comboDefaultsGuideHint1": "Jaga agar percobaan ulang tetap rendah dalam aliran latensi rendah; menambah waktu tunggu hanya untuk tugas-tugas generasi panjang.", - "comboDefaultsGuideHint2": "Gunakan penggantian penyedia ketika satu penyedia memerlukan perilaku batas waktu/coba lagi yang berbeda dari default global." + "comboDefaultsGuideHint2": "Gunakan penggantian penyedia ketika satu penyedia memerlukan perilaku batas waktu/coba lagi yang berbeda dari default global.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Penerjemah", diff --git a/src/i18n/messages/in.json b/src/i18n/messages/in.json index ad245c843f..8b59bda2be 100644 --- a/src/i18n/messages/in.json +++ b/src/i18n/messages/in.json @@ -187,7 +187,12 @@ "themeCyan": "सियान", "cliToolsShort": "उपकरण", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "थीम्स", @@ -855,6 +860,11 @@ "when": "लागत में कमी आपकी सर्वोच्च प्राथमिकता है.", "avoid": "मूल्य निर्धारण डेटा गायब है या पुराना है।", "example": "पृष्ठभूमि या बैच की नौकरियाँ जहाँ कम लागत को प्राथमिकता दी जाती है।" + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -948,6 +958,13 @@ "tip1": "सभी चयनित मॉडलों के लिए मूल्य निर्धारण कवरेज सुनिश्चित करें।", "tip2": "कठिन संकेतों के लिए गुणवत्तापूर्ण फ़ॉलबैक रखें।", "tip3": "बैच/पृष्ठभूमि नौकरियों के लिए उपयोग करें जहां लागत मुख्य KPI है।" + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "मुफ़्त स्टैक ($0)", @@ -1071,7 +1088,25 @@ "a2aQuickStartStep3": "`कार्य/प्राप्त करें` और `कार्य/रद्द करें` का उपयोग करके कार्यों को ट्रैक और नियंत्रित करें।", "completionsLegacy": "पूर्णताएँ (विरासत)", "completionsLegacyDesc": "लीगेसी ओपनएआई टेक्स्ट पूर्णताएँ - शीघ्र स्ट्रिंग और संदेश सरणी प्रारूप दोनों को स्वीकार करती हैं", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "endpoints": { "tabProxy": "समापन बिंदु प्रॉक्सी", @@ -1657,7 +1692,13 @@ "modelsPathHint": "सत्यापन के लिए कस्टम मॉडल पथ (जैसे /v4/मॉडल)", "allModelsAlreadyImported": "Semua model sudah diimpor", "noNewModelsToImport": "Tidak ada model baru untuk diimpor — semua model sudah ada di registri atau daftar model kustom", - "skippingExistingModels": "Melewatkan {count} model yang sudah ada" + "skippingExistingModels": "Melewatkan {count} model yang sudah ada", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "सेटिंग्स", @@ -2066,7 +2107,10 @@ "customPricingNote": "आप विशिष्ट मॉडलों के लिए डिफ़ॉल्ट मूल्य निर्धारण को ओवरराइड कर सकते हैं। कस्टम ओवरराइड्स को स्वतः-पता लगाए गए मूल्य-निर्धारण पर प्राथमिकता दी जाती है।", "editPricing": "मूल्य निर्धारण संपादित करें", "viewFullDetails": "पूर्ण विवरण देखें", - "themeCoral": "मूंगा" + "themeCoral": "मूंगा", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "अनुवादक", diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json index 29a27ada2c..5d7daf9205 100644 --- a/src/i18n/messages/it.json +++ b/src/i18n/messages/it.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Impossibile attivare la sincronizzazione automatica", "allModelsAlreadyImported": "Tutti i modelli sono già importati", "noNewModelsToImport": "Nessun nuovo modello da importare — tutti i modelli sono già nel registro o nell'elenco dei modelli personalizzati", - "skippingExistingModels": "Salto {count} modelli esistenti" + "skippingExistingModels": "Salto {count} modelli esistenti", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Impostazioni", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Se i fornitori variano in termini di qualità/costo, iniziare con Opzione costo per il lavoro in background e Meno utilizzato per un consumo equilibrato.", "comboDefaultsGuideTitle": "Come ottimizzare le impostazioni predefinite della combo", "comboDefaultsGuideHint1": "Mantenere bassi i tentativi nei flussi a bassa latenza; aumentare il timeout solo per attività di generazione prolungata.", - "comboDefaultsGuideHint2": "Utilizzare le sostituzioni del provider quando un provider necessita di un comportamento di timeout/riprova diverso rispetto alle impostazioni predefinite globali." + "comboDefaultsGuideHint2": "Utilizzare le sostituzioni del provider quando un provider necessita di un comportamento di timeout/riprova diverso rispetto alle impostazioni predefinite globali.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Traduttore", diff --git a/src/i18n/messages/ja.json b/src/i18n/messages/ja.json index a5054ff4ce..5029619c60 100644 --- a/src/i18n/messages/ja.json +++ b/src/i18n/messages/ja.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "自動同期の切り替えに失敗", "allModelsAlreadyImported": "すべてのモデルは既にインポート済みです", "noNewModelsToImport": "インポートする新しいモデルはありません — すべてのモデルは既にレジストリまたはカスタムモデルリストにあります", - "skippingExistingModels": "{count}件の既存モデルをスキップ" + "skippingExistingModels": "{count}件の既存モデルをスキップ", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "設定", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "プロバイダーによって品質/コストが異なる場合は、バックグラウンド作業についてはコスト最適化から開始し、バランスのとれた摩耗については最も使用されないようにします。", "comboDefaultsGuideTitle": "コンボのデフォルトを調整する方法", "comboDefaultsGuideHint1": "低遅延フローでは再試行を低く抑えます。長い世代のタスクの場合にのみタイムアウトを増やします。", - "comboDefaultsGuideHint2": "1 つのプロバイダーがグローバルなデフォルトとは異なるタイムアウト/再試行動作を必要とする場合は、プロバイダー オーバーライドを使用します。" + "comboDefaultsGuideHint2": "1 つのプロバイダーがグローバルなデフォルトとは異なるタイムアウト/再試行動作を必要とする場合は、プロバイダー オーバーライドを使用します。", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "翻訳者", diff --git a/src/i18n/messages/ko.json b/src/i18n/messages/ko.json index b50a8176fd..74e7a43d9e 100644 --- a/src/i18n/messages/ko.json +++ b/src/i18n/messages/ko.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "자동 동기화 전환 실패", "allModelsAlreadyImported": "모든 모델이 이미 가져왔습니다", "noNewModelsToImport": "가져올 새 모델 없음 — 모든 모델이 이미 레지스트리 또는 사용자 정의 모델 목록에 있습니다", - "skippingExistingModels": "{count}개의 기존 모델 건너뛰기" + "skippingExistingModels": "{count}개의 기존 모델 건너뛰기", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "설정", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "서비스 제공업체의 품질/비용이 다양한 경우 백그라운드 작업에는 비용 선택(Cost Opt)으로 시작하고 균형 잡힌 착용에는 최소 사용(Least Used)으로 시작하세요.", "comboDefaultsGuideTitle": "콤보 기본값을 조정하는 방법", "comboDefaultsGuideHint1": "지연 시간이 짧은 흐름에서는 재시도 횟수를 낮게 유지하세요. 긴 세대 작업에 대해서만 시간 제한을 늘립니다.", - "comboDefaultsGuideHint2": "하나의 공급자가 전역 기본값과 다른 시간 초과/재시도 동작을 필요로 하는 경우 공급자 재정의를 사용합니다." + "comboDefaultsGuideHint2": "하나의 공급자가 전역 기본값과 다른 시간 초과/재시도 동작을 필요로 하는 경우 공급자 재정의를 사용합니다.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "번역기", diff --git a/src/i18n/messages/ms.json b/src/i18n/messages/ms.json index 0b2631f6ba..39d8b79995 100644 --- a/src/i18n/messages/ms.json +++ b/src/i18n/messages/ms.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Gagal untuk menogol autosegerak", "allModelsAlreadyImported": "Semua model sudah diimport", "noNewModelsToImport": "Tiada model baru untuk diimport — semua model sudah ada dalam registri atau senarai model tersuai", - "skippingExistingModels": "Melangkau {count} model sedia ada" + "skippingExistingModels": "Melangkau {count} model sedia ada", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "tetapan", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Jika pembekal berbeza dalam kualiti/kos, mulakan dengan Pilihan Kos untuk kerja latar belakang dan Paling Kurang Digunakan untuk pemakaian seimbang.", "comboDefaultsGuideTitle": "Bagaimana untuk menala lalai kombo", "comboDefaultsGuideHint1": "Pastikan percubaan semula rendah dalam aliran kependaman rendah; tambahkan tamat masa hanya untuk tugas generasi panjang.", - "comboDefaultsGuideHint2": "Gunakan penggantian pembekal apabila satu pembekal memerlukan gelagat tamat masa/cuba semula yang berbeza daripada lalai global." + "comboDefaultsGuideHint2": "Gunakan penggantian pembekal apabila satu pembekal memerlukan gelagat tamat masa/cuba semula yang berbeza daripada lalai global.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Penterjemah", diff --git a/src/i18n/messages/nl.json b/src/i18n/messages/nl.json index df38cbc608..55dd5765f5 100644 --- a/src/i18n/messages/nl.json +++ b/src/i18n/messages/nl.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Kan automatische synchronisatie niet in- of uitschakelen", "allModelsAlreadyImported": "Alle modellen zijn al geïmporteerd", "noNewModelsToImport": "Geen nieuwe modellen om te importeren — alle modellen staan al in het register of de lijst met aangepaste modellen", - "skippingExistingModels": "{count} bestaande modellen overgeslagen" + "skippingExistingModels": "{count} bestaande modellen overgeslagen", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Instellingen", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Als aanbieders variëren in kwaliteit/kosten, begin dan met Kosten Opt voor achtergrondwerk en Minst Gebruikt voor evenwichtige slijtage.", "comboDefaultsGuideTitle": "Combo-standaardinstellingen afstemmen", "comboDefaultsGuideHint1": "Houd het aantal nieuwe pogingen laag bij stromen met lage latentie; verhoog de time-out alleen voor lange generatietaken.", - "comboDefaultsGuideHint2": "Gebruik provideroverschrijvingen wanneer een provider ander time-out/opnieuw gedrag nodig heeft dan de algemene standaardwaarden." + "comboDefaultsGuideHint2": "Gebruik provideroverschrijvingen wanneer een provider ander time-out/opnieuw gedrag nodig heeft dan de algemene standaardwaarden.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Vertaler", diff --git a/src/i18n/messages/no.json b/src/i18n/messages/no.json index 4f0ba90eb7..592ebeeaf2 100644 --- a/src/i18n/messages/no.json +++ b/src/i18n/messages/no.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Laster inn MCP-dashbordet ...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Kunne ikke slå på automatisk synkronisering", "allModelsAlreadyImported": "Alle modeller er allerede importert", "noNewModelsToImport": "Ingen nye modeller å importere — alle modeller finnes allerede i registeret eller listen over egendefinerte modeller", - "skippingExistingModels": "Hopper over {count} eksisterende modeller" + "skippingExistingModels": "Hopper over {count} eksisterende modeller", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Innstillinger", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Hvis leverandørene varierer i kvalitet/kostnad, start med Cost Opt for bakgrunnsarbeid og Minst brukt for balansert slitasje.", "comboDefaultsGuideTitle": "Hvordan justere kombinasjonsstandarder", "comboDefaultsGuideHint1": "Hold lave gjenforsøk i flyter med lav latens; øke tidsavbruddet bare for langgenerasjonsoppgaver.", - "comboDefaultsGuideHint2": "Bruk leverandøroverstyringer når en leverandør trenger annen tidsavbrudd/forsøk på nytt enn globale standardinnstillinger." + "comboDefaultsGuideHint2": "Bruk leverandøroverstyringer når en leverandør trenger annen tidsavbrudd/forsøk på nytt enn globale standardinnstillinger.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Oversetter", diff --git a/src/i18n/messages/phi.json b/src/i18n/messages/phi.json index 78bfe821f3..dfd7ef55cb 100644 --- a/src/i18n/messages/phi.json +++ b/src/i18n/messages/phi.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Nilo-load ang MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Nabigong i-toggle ang auto-sync", "allModelsAlreadyImported": "Lahat ng mga modelo ay nai-import na", "noNewModelsToImport": "Walang bagong modelo na i-import — lahat ng mga modelo ay nasa registry o custom na listahan na", - "skippingExistingModels": "Pinapalampas ang {count} na umiiral na mga modelo" + "skippingExistingModels": "Pinapalampas ang {count} na umiiral na mga modelo", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Mga setting", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Kung iba-iba ang kalidad/gastos ng mga provider, magsimula sa Cost Opt para sa background na trabaho at Least Used para sa balanseng pagsusuot.", "comboDefaultsGuideTitle": "Paano i-tune ang mga default ng combo", "comboDefaultsGuideHint1": "Panatilihing mababa ang mga muling pagsubok sa mga daloy na mababa ang latency; taasan ang timeout para lang sa mga gawaing pang-generation.", - "comboDefaultsGuideHint2": "Gumamit ng mga override ng provider kapag ang isang provider ay nangangailangan ng iba't ibang gawi sa pag-timeout/subukang muli kaysa sa mga pandaigdigang default." + "comboDefaultsGuideHint2": "Gumamit ng mga override ng provider kapag ang isang provider ay nangangailangan ng iba't ibang gawi sa pag-timeout/subukang muli kaysa sa mga pandaigdigang default.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Tagasalin", diff --git a/src/i18n/messages/pl.json b/src/i18n/messages/pl.json index 94c4b799cc..c80309f446 100644 --- a/src/i18n/messages/pl.json +++ b/src/i18n/messages/pl.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Nie udało się przełączyć automatycznej synchronizacji", "allModelsAlreadyImported": "Wszystkie modele są już zaimportowane", "noNewModelsToImport": "Brak nowych modeli do zaimportowania — wszystkie modele są już w rejestrze lub na liście modeli niestandardowych", - "skippingExistingModels": "Pomijanie {count} istniejących modeli" + "skippingExistingModels": "Pomijanie {count} istniejących modeli", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Ustawienia", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Jeśli dostawcy różnią się jakością/kosztami, zacznij od opcji Koszt w przypadku pracy w tle i opcji Najmniej używane w celu zapewnienia zrównoważonego zużycia.", "comboDefaultsGuideTitle": "Jak dostroić domyślne ustawienia kombinacji", "comboDefaultsGuideHint1": "Utrzymuj niską liczbę ponownych prób w przepływach o małych opóźnieniach; zwiększaj limit czasu tylko dla zadań o długim generowaniu.", - "comboDefaultsGuideHint2": "Użyj zastąpienia dostawcy, gdy jeden z dostawców wymaga innego zachowania związanego z przekroczeniem limitu czasu/ponownej próby niż globalne ustawienia domyślne." + "comboDefaultsGuideHint2": "Użyj zastąpienia dostawcy, gdy jeden z dostawców wymaga innego zachowania związanego z przekroczeniem limitu czasu/ponownej próby niż globalne ustawienia domyślne.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Tłumacz", diff --git a/src/i18n/messages/pt-BR.json b/src/i18n/messages/pt-BR.json index 63a4a6a62c..09df0066f5 100644 --- a/src/i18n/messages/pt-BR.json +++ b/src/i18n/messages/pt-BR.json @@ -187,7 +187,12 @@ "cliToolsShort": "Ferramentas", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -1032,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Cria um Quick Tunnel temporário do Cloudflare. A URL muda a cada reinício." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Carregando painel MCP...", @@ -2021,7 +2044,10 @@ "routingAdvancedGuideHint2": "Se os fornecedores variarem em qualidade/custo, comece com Opção de custo para trabalho em segundo plano e Menos usado para desgaste equilibrado.", "comboDefaultsGuideTitle": "Como ajustar os padrões de combinação", "comboDefaultsGuideHint1": "Mantenha as tentativas baixas em fluxos de baixa latência; aumente o tempo limite apenas para tarefas de geração longa.", - "comboDefaultsGuideHint2": "Use substituições de provedor quando um provedor precisar de um comportamento de tempo limite/nova tentativa diferente dos padrões globais." + "comboDefaultsGuideHint2": "Use substituições de provedor quando um provedor precisar de um comportamento de tempo limite/nova tentativa diferente dos padrões globais.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Tradutor", diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json index 7f9ef40871..c2f7f511ca 100644 --- a/src/i18n/messages/pt.json +++ b/src/i18n/messages/pt.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "endpoints": { "tabProxy": "Endpoint Proxy", @@ -1606,7 +1641,13 @@ "autoSyncToggleFailed": "Falha ao alternar sincronização automática", "allModelsAlreadyImported": "Todos os modelos já foram importados", "noNewModelsToImport": "Nenhum modelo novo para importar — todos os modelos já estão no registo ou na lista de modelos personalizados", - "skippingExistingModels": "A ignorar {count} modelos existentes" + "skippingExistingModels": "A ignorar {count} modelos existentes", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Configurações", @@ -2015,7 +2056,10 @@ "routingAdvancedGuideHint2": "Se os fornecedores variarem em qualidade/custo, comece com Opção de custo para trabalho em segundo plano e Menos usado para desgaste equilibrado.", "comboDefaultsGuideTitle": "Como ajustar os padrões de combinação", "comboDefaultsGuideHint1": "Mantenha as tentativas baixas em fluxos de baixa latência; aumente o tempo limite apenas para tarefas de geração longa.", - "comboDefaultsGuideHint2": "Use substituições de provedor quando um provedor precisar de um comportamento de tempo limite/nova tentativa diferente dos padrões globais." + "comboDefaultsGuideHint2": "Use substituições de provedor quando um provedor precisar de um comportamento de tempo limite/nova tentativa diferente dos padrões globais.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Tradutor", diff --git a/src/i18n/messages/ro.json b/src/i18n/messages/ro.json index 7b579ff2b4..6875b97845 100644 --- a/src/i18n/messages/ro.json +++ b/src/i18n/messages/ro.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Nu s-a putut comuta sincronizarea automată", "allModelsAlreadyImported": "Toate modelele sunt deja importate", "noNewModelsToImport": "Niciun model nou de importat — toate modelele sunt deja în registru sau în lista de modele personalizate", - "skippingExistingModels": "Se omit {count} modele existente" + "skippingExistingModels": "Se omit {count} modele existente", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Setări", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Dacă furnizorii variază în ceea ce privește calitatea/costul, începeți cu Cost Opt pentru munca de fundal și Least Used pentru uzura echilibrată.", "comboDefaultsGuideTitle": "Cum să reglați setările implicite de combo", "comboDefaultsGuideHint1": "Menține reîncercările scăzute în fluxurile cu latență scăzută; crește timpul de expirare numai pentru sarcini de generație lungă.", - "comboDefaultsGuideHint2": "Folosiți suprascrierile furnizorului atunci când un furnizor are nevoie de un comportament de timeout/reîncercare diferit față de valorile prestabilite globale." + "comboDefaultsGuideHint2": "Folosiți suprascrierile furnizorului atunci când un furnizor are nevoie de un comportament de timeout/reîncercare diferit față de valorile prestabilite globale.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Traducător", diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json index 00073489f5..c4b119fc46 100644 --- a/src/i18n/messages/ru.json +++ b/src/i18n/messages/ru.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Темы", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Не удалось переключить автосинхронизацию", "allModelsAlreadyImported": "Все модели уже импортированы", "noNewModelsToImport": "Нет новых моделей для импорта — все модели уже есть в реестре или списке пользовательских моделей", - "skippingExistingModels": "Пропуск {count} существующих моделей" + "skippingExistingModels": "Пропуск {count} существующих моделей", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Настройки", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Если поставщики различаются по качеству/стоимости, начните с варианта «Стоимость» для фоновой работы и «Наименее используемый» для сбалансированного износа.", "comboDefaultsGuideTitle": "Как настроить комбо по умолчанию", "comboDefaultsGuideHint1": "Сохраняйте низкий уровень повторных попыток в потоках с малой задержкой; увеличивайте таймаут только для задач длинной генерации.", - "comboDefaultsGuideHint2": "Используйте переопределения поставщика, если одному поставщику требуется другое поведение по тайм-ауту/повторной попытке, чем глобальные значения по умолчанию." + "comboDefaultsGuideHint2": "Используйте переопределения поставщика, если одному поставщику требуется другое поведение по тайм-ауту/повторной попытке, чем глобальные значения по умолчанию.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Переводчик", diff --git a/src/i18n/messages/sk.json b/src/i18n/messages/sk.json index 42eddf142f..6e670a266e 100644 --- a/src/i18n/messages/sk.json +++ b/src/i18n/messages/sk.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Nepodarilo sa prepnúť automatickú synchronizáciu", "allModelsAlreadyImported": "Všetky modely sú už importované", "noNewModelsToImport": "Žiadne nové modely na import — všetky modely sú už v registri alebo v zozname vlastných modelov", - "skippingExistingModels": "Preskakujem {count} existujúcich modelov" + "skippingExistingModels": "Preskakujem {count} existujúcich modelov", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Nastavenia", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Ak sa poskytovatelia líšia v kvalite/nákladoch, začnite s Cost Opt pre prácu na pozadí a Najmenej používané pre vyvážené opotrebovanie.", "comboDefaultsGuideTitle": "Ako vyladiť predvolené nastavenia komba", "comboDefaultsGuideHint1": "Udržujte počet opakovaní na nízkej úrovni v tokoch s nízkou latenciou; zvýšiť časový limit iba pre úlohy s dlhým generovaním.", - "comboDefaultsGuideHint2": "Použite prepísania poskytovateľa, keď jeden poskytovateľ potrebuje iné správanie pri uplynutí časového limitu/opakovania, ako sú globálne predvolené hodnoty." + "comboDefaultsGuideHint2": "Použite prepísania poskytovateľa, keď jeden poskytovateľ potrebuje iné správanie pri uplynutí časového limitu/opakovania, ako sú globálne predvolené hodnoty.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Prekladateľ", diff --git a/src/i18n/messages/sv.json b/src/i18n/messages/sv.json index b2a55926a9..34e96ad5ec 100644 --- a/src/i18n/messages/sv.json +++ b/src/i18n/messages/sv.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Det gick inte att växla automatisk synkronisering", "allModelsAlreadyImported": "Alla modeller är redan importerade", "noNewModelsToImport": "Inga nya modeller att importera — alla modeller finns redan i registret eller listan över anpassade modeller", - "skippingExistingModels": "Hoppar över {count} befintliga modeller" + "skippingExistingModels": "Hoppar över {count} befintliga modeller", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Inställningar", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Om leverantörer varierar i kvalitet/kostnad, börja med Cost Opt för bakgrundsarbete och Minst Används för balanserat slitage.", "comboDefaultsGuideTitle": "Hur man ställer in kombinationsinställningar", "comboDefaultsGuideHint1": "Håll låga omförsök i flöden med låg latens; öka timeout endast för långa generationsuppgifter.", - "comboDefaultsGuideHint2": "Använd åsidosättande av leverantörer när en leverantör behöver ett annat beteende för timeout/försök igen än globala standardinställningar." + "comboDefaultsGuideHint2": "Använd åsidosättande av leverantörer när en leverantör behöver ett annat beteende för timeout/försök igen än globala standardinställningar.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Översättare", diff --git a/src/i18n/messages/th.json b/src/i18n/messages/th.json index f811b7219f..1259bc8362 100644 --- a/src/i18n/messages/th.json +++ b/src/i18n/messages/th.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "ธีมส์", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "ไม่สามารถสลับการซิงค์อัตโนมัติ", "allModelsAlreadyImported": "นำเข้าโมเดลทั้งหมดแล้ว", "noNewModelsToImport": "ไม่มีโมเดลใหม่ที่จะนำเข้า — โมเดลทั้งหมดมีอยู่แล้วในรีจิสทรีหรือรายการโมเดลที่กำหนดเอง", - "skippingExistingModels": "ข้าม {count} โมเดลที่มีอยู่" + "skippingExistingModels": "ข้าม {count} โมเดลที่มีอยู่", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "การตั้งค่า", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "หากผู้ให้บริการมีคุณภาพ/ต้นทุนแตกต่างกัน ให้เริ่มด้วยการเลือกต้นทุนสำหรับงานเบื้องหลังและใช้งานน้อยที่สุดสำหรับการสึกหรอที่สมดุล", "comboDefaultsGuideTitle": "วิธีปรับแต่งค่าเริ่มต้นคอมโบ", "comboDefaultsGuideHint1": "พยายามลองใหม่ให้ต่ำในกระแสเวลาแฝงต่ำ เพิ่มการหมดเวลาเฉพาะสำหรับงานที่ใช้เวลานานเท่านั้น", - "comboDefaultsGuideHint2": "ใช้การแทนที่ผู้ให้บริการเมื่อผู้ให้บริการรายหนึ่งต้องการพฤติกรรมการหมดเวลา/การลองใหม่ที่แตกต่างไปจากค่าเริ่มต้นส่วนกลาง" + "comboDefaultsGuideHint2": "ใช้การแทนที่ผู้ให้บริการเมื่อผู้ให้บริการรายหนึ่งต้องการพฤติกรรมการหมดเวลา/การลองใหม่ที่แตกต่างไปจากค่าเริ่มต้นส่วนกลาง", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "นักแปล", diff --git a/src/i18n/messages/tr.json b/src/i18n/messages/tr.json index bb4bbab2c0..66981663be 100644 --- a/src/i18n/messages/tr.json +++ b/src/i18n/messages/tr.json @@ -185,7 +185,12 @@ "themeViolet": "Menekşe", "themeOrange": "Turuncu", "themeCyan": "Camgöbeği", - "cliToolsShort": "Araçlar" + "cliToolsShort": "Araçlar", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Temalar", @@ -853,6 +858,11 @@ "when": "Maliyeti düşürmek birinci önceliğinizse.", "avoid": "Fiyatlandırma verileri eksik veya güncel değil.", "example": "Düşük maliyetin öncelikli olduğu arka plan veya toplu işler." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -946,6 +956,13 @@ "tip1": "Seçilen tüm modellerde fiyatlandırma kapsamasını sağlayın.", "tip2": "Zor istemler için kaliteli bir yedek bulundurun.", "tip3": "Maliyetin ana KPI olduğu toplu/arka plan işlerinde kullanın." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Ücretsiz Yığın ($0)", @@ -1069,7 +1086,25 @@ "a2aQuickStartStep3": "Görevleri `tasks/get` ve `tasks/cancel` ile izleyin ve yönetin.", "completionsLegacy": "Tamamlamalar (Eski)", "completionsLegacyDesc": "Eski OpenAI metin tamamlamaları — hem bilgi istemi dizesini hem de mesaj dizisi biçimini kabul eder", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "endpoints": { "tabProxy": "Uç Nokta Proxy", @@ -1655,7 +1690,13 @@ "modelsPathHint": "Doğrulama için özel model yolu (ör. /v4/models)", "allModelsAlreadyImported": "Tüm modeller zaten içe aktarıldı", "noNewModelsToImport": "İçe aktarılacak yeni model yok — tüm modeller zaten kayıt defterinde veya özel modeller listesinde", - "skippingExistingModels": "{count} mevcut model atlanıyor" + "skippingExistingModels": "{count} mevcut model atlanıyor", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Ayarlar", @@ -2064,7 +2105,10 @@ "customPricingNote": "Belirli modeller için varsayılan fiyatlandırmayı geçersiz kılabilirsiniz. Özel geçersiz kılmalar, otomatik algılanan fiyatlandırmaya göre öncelik kazanır.", "editPricing": "Fiyatlandırmayı Düzenle", "viewFullDetails": "Tüm Ayrıntıları Görüntüle", - "themeCoral": "Mercan" + "themeCoral": "Mercan", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Çeviri", diff --git a/src/i18n/messages/uk-UA.json b/src/i18n/messages/uk-UA.json index d2472c48c2..45e0fc9dd8 100644 --- a/src/i18n/messages/uk-UA.json +++ b/src/i18n/messages/uk-UA.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Не вдалося вимкнути автоматичну синхронізацію", "allModelsAlreadyImported": "Усі моделі вже імпортовано", "noNewModelsToImport": "Немає нових моделей для імпорту — усі моделі вже є в реєстрі або списку користувацьких моделей", - "skippingExistingModels": "Пропуск {count} наявних моделей" + "skippingExistingModels": "Пропуск {count} наявних моделей", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Налаштування", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Якщо постачальники відрізняються за якістю/вартістю, почніть із Cost Opt для фонової роботи та Least Used для збалансованого зносу.", "comboDefaultsGuideTitle": "Як налаштувати параметри комбо за замовчуванням", "comboDefaultsGuideHint1": "Зберігайте низькі повторні спроби в потоках із низькою затримкою; збільшити час очікування лише для завдань тривалого покоління.", - "comboDefaultsGuideHint2": "Використовуйте перевизначення постачальника, коли одному постачальнику потрібна інша поведінка тайм-ауту/повторної спроби, ніж глобальні стандартні налаштування." + "comboDefaultsGuideHint2": "Використовуйте перевизначення постачальника, коли одному постачальнику потрібна інша поведінка тайм-ауту/повторної спроби, ніж глобальні стандартні налаштування.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Перекладач", diff --git a/src/i18n/messages/vi.json b/src/i18n/messages/vi.json index 7ead77a9a9..37b1a551e5 100644 --- a/src/i18n/messages/vi.json +++ b/src/i18n/messages/vi.json @@ -187,7 +187,12 @@ "autoCombo": "Auto Combo", "searchTools": "Search Tools", "cache": "Cache", - "cacheShort": "Cache" + "cacheShort": "Cache", + "cliSection": "CLI", + "debugSection": "Debug", + "helpSection": "Help", + "primarySection": "Main", + "systemSection": "System" }, "themesPage": { "title": "Themes", @@ -804,6 +809,11 @@ "when": "Cost reduction is your top priority.", "avoid": "Pricing data is missing or outdated.", "example": "Background or batch jobs where lower cost is preferred." + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -897,6 +907,13 @@ "tip1": "Ensure pricing coverage for all selected models.", "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "Free Stack ($0)", @@ -1020,7 +1037,25 @@ "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching", "searchProvider": "Search Provider", "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.", - "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart." + "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.", + "cloudflaredDisable": "Stop Tunnel", + "cloudflaredEnable": "Enable Tunnel", + "cloudflaredError": "Error", + "cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.", + "cloudflaredInstallAndEnable": "Install & Enable", + "cloudflaredLastError": "Last error: {error}", + "cloudflaredNotInstalled": "Not installed", + "cloudflaredRequestFailed": "Failed to update Cloudflare tunnel", + "cloudflaredRunning": "Running", + "cloudflaredStarted": "Cloudflare tunnel started", + "cloudflaredStarting": "Starting", + "cloudflaredStopped": "Cloudflare tunnel stopped", + "cloudflaredStoppedState": "Stopped", + "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.", + "cloudflaredTitle": "Cloudflare Quick Tunnel", + "cloudflaredUnsupported": "Unsupported", + "cloudflaredUnsupportedNote": "This platform is not supported for managed installation.", + "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart." }, "mcpDashboard": { "loading": "Loading MCP dashboard...", @@ -1594,7 +1629,13 @@ "autoSyncToggleFailed": "Không chuyển đổi được tính năng tự động đồng bộ hóa", "allModelsAlreadyImported": "Tất cả mô hình đã được nhập", "noNewModelsToImport": "Không có mô hình mới để nhập — tất cả mô hình đã có trong danh mục hoặc danh sách mô hình tùy chỉnh", - "skippingExistingModels": "Bỏ qua {count} mô hình hiện có" + "skippingExistingModels": "Bỏ qua {count} mô hình hiện có", + "applyCodexAuthLocal": "Apply auth", + "codexAuthAppliedLocal": "Codex auth.json applied locally", + "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", + "codexAuthExportFailed": "Failed to export Codex auth.json", + "codexAuthExported": "Codex auth.json exported", + "exportCodexAuthFile": "Export auth" }, "settings": { "title": "Cài đặt", @@ -2003,7 +2044,10 @@ "routingAdvancedGuideHint2": "Nếu các nhà cung cấp khác nhau về chất lượng/chi phí, hãy bắt đầu với Cost Opt cho công việc nền và Ít được sử dụng nhất để cân bằng độ hao mòn.", "comboDefaultsGuideTitle": "Cách điều chỉnh mặc định kết hợp", "comboDefaultsGuideHint1": "Giữ số lần thử ở mức thấp trong các luồng có độ trễ thấp; chỉ tăng thời gian chờ cho các tác vụ tạo dài.", - "comboDefaultsGuideHint2": "Sử dụng ghi đè nhà cung cấp khi một nhà cung cấp cần hành vi hết thời gian chờ/thử lại khác với mặc định chung." + "comboDefaultsGuideHint2": "Sử dụng ghi đè nhà cung cấp khi một nhà cung cấp cần hành vi hết thời gian chờ/thử lại khác với mặc định chung.", + "sidebarVisibility": "Hide sidebar items", + "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.", + "sidebarVisibilityHint": "Any sidebar section is hidden automatically when a..." }, "translator": { "title": "Người phiên dịch", diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index 4e06abbb36..e2fe29d84d 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -860,6 +860,11 @@ "when": "降低成本是你的首要目标。", "avoid": "定价数据缺失或已经过期。", "example": "后台任务或批处理作业,优先考虑更低成本。" + }, + "strict-random": { + "when": "Use when you want perfectly even spread — each model used once before repeating.", + "avoid": "Avoid when models have different quality or latency and order matters.", + "example": "Example: Multiple accounts of the same model to distribute usage evenly." } }, "advancedHelp": { @@ -953,6 +958,13 @@ "tip1": "确保所有已选模型都具备定价信息。", "tip2": "为高难度提示保留一个质量更高的回退模型。", "tip3": "适合批处理或后台任务等成本是主要指标的场景。" + }, + "strict-random": { + "title": "Shuffle deck distribution", + "description": "Each model is used exactly once per cycle before reshuffling.", + "tip1": "Use at least 2 models for meaningful distribution.", + "tip2": "Works best with equivalent-performance models.", + "tip3": "Ideal for load balancing across multiple API accounts." } }, "templateFreeStack": "免费栈($0)",