From 603db8ce6ae89f679c72be4f62fdafb194fdf989 Mon Sep 17 00:00:00 2001 From: zenobit Date: Mon, 30 Mar 2026 05:02:20 +0200 Subject: [PATCH] fix(i18n): fix placeholder mismatches in cs.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed 14 placeholders that were translated instead of preserved: - usage.inDuration: {trvání} -> {duration} - usage.detailsContains: {termín} -> {term} - usage.dayTimeFormat: {den} -> {day} - translator.youWithFormat: {formát} -> {format} - providers.testedCount: added missing {count} placeholder - providers.allTestsPassed: added missing {total} placeholder - All ICU plural formats now correctly preserve {# X} inner format --- src/i18n/messages/cs.json | 2 +- src/i18n/messages/hi.json | 154 ++++++++++++++++++++++++++++++++++++-- src/i18n/messages/tr.json | 36 ++++++++- 3 files changed, 185 insertions(+), 7 deletions(-) diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json index d30ce1756a..bdcfbd7ad9 100644 --- a/src/i18n/messages/cs.json +++ b/src/i18n/messages/cs.json @@ -2265,7 +2265,7 @@ "sendMessageToSeePipeline": "Odešlete zprávu a zobrazte si proces překladu", "chatMessageHintPrefix": "Vaše zpráva bude formátována jako", "chatMessageHintSuffix": "požadavek, přeložený kanálem a odeslaný vybranému poskytovateli.", - "youWithFormat": "Vy ({formát})", + "youWithFormat": "Vy ({format})", "assistant": "Asistent", "typeMessage": "Napište zprávu...", "send": "Poslat", diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json index 200de30072..cb78647e47 100644 --- a/src/i18n/messages/hi.json +++ b/src/i18n/messages/hi.json @@ -58,7 +58,85 @@ "free": "निःशुल्क", "skipToContent": "सामग्री पर जाएं", "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.", - "maintenanceServerUnreachable": "Server is unreachable. Reconnecting..." + "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...", + "Failed to reset pricing": "Failed to reset pricing", + "hex": "Hex", + "tool": "Tool", + "musicGeneration": "Music Generation", + "Failed to save pricing": "Failed to save pricing", + "error_description": "Error Description", + "windowMs": "Window (ms)", + "content-type": "Content Type", + "http": "HTTP", + "text": "Text", + "sortOrder": "Sort Order", + "musicDesc": "Music Description", + "oauth": "OAuth", + "file": "File", + "textarea": "Textarea", + "host": "Host", + "chat-completions": "Chat Completions", + "better-sqlite3": "better-sqlite3", + "connectionId": "Connection ID", + "open": "Open", + "skill": "Skill", + "content-length": "Content Length", + "scope_id": "Scope ID", + "accept": "Accept", + "apiKeyName": "API Key Name", + "resolveConnectionId": "Resolve Connection ID", + "scope": "Scope", + "selfsigned": "Self-signed", + "builder-id": "Builder ID", + "toolId": "Tool ID", + "apiKeyId": "API Key ID", + "promptTokens": "Prompt Tokens", + "cloud-status-changed": "Cloud status changed", + "sortBy": "Sort By", + "code": "Code", + "redirect_uri": "Redirect URI", + "alias": "Alias", + "id": "ID", + "social-github": "GitHub", + "jwtSecret": "JWT Secret", + "TOOL_DENYLIST": "Tool Denylist", + "scopeId": "Scope ID", + "totalTokens": "Total Tokens", + "proxy_id": "Proxy ID", + "idempotency-key": "Idempotency Key", + "TOOL_ALLOWLIST": "Tool Allowlist", + "apiKeySecret": "API Key Secret", + "social-google": "Google", + "tab": "Tab", + "keytar": "Keytar", + "where_used": "Where Used", + "resolve_connection_id": "Resolve Connection ID", + "offset": "Offset", + "crypto": "Crypto", + "compatible": "Compatible", + "base64url": "Base64 URL", + "undici": "undici", + "import": "Import", + "blacklist": "Blacklist", + "apikey": "API Key", + "resolve": "Resolve", + "whitelist": "Whitelist", + "whereUsed": "Where Used", + "accountId": "Account ID", + "component": "Component", + "authorization": "Authorization", + "force": "Force", + "idc": "IDC", + "rawModel": "Raw Model", + "origin": "Origin", + "web": "Web", + "cookie": "Cookie", + "completionTokens": "Completion Tokens", + "range": "Range", + "proxyId": "Proxy ID", + "auth_token": "Auth Token", + "limit": "Limit", + "hours": "Hours" }, "sidebar": { "home": "घर", @@ -186,7 +264,11 @@ "requestsShort": "{count} अनुरोध", "providerModelsTitle": "{provider} - मॉडल", "copiedModel": "कॉपी किया गया: {model}", - "aliasLabel": "उपनाम" + "aliasLabel": "उपनाम", + "updateStarted": "Update started...", + "updateNow": "Update Now", + "updateAvailableDesc": "A new version is available. Click to update.", + "updating": "Updating..." }, "analytics": { "title": "विश्लेषिकी", @@ -1558,7 +1640,16 @@ "codexAuthApplyFailed": "Failed to apply Codex auth.json locally", "codexAuthExportFailed": "Failed to export Codex auth.json", "codexAuthExported": "Codex auth.json exported", - "exportCodexAuthFile": "Export auth" + "exportCodexAuthFile": "Export auth", + "autoSync": "Auto-Sync", + "clearAllModels": "Clear All Models", + "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)", + "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically", + "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.", + "clearAllModelsSuccess": "All models cleared", + "clearAllModelsFailed": "Failed to clear models", + "autoSyncToggleFailed": "Failed to toggle auto-sync", + "autoSyncDisabled": "Auto-sync disabled" }, "settings": { "title": "सेटिंग्स", @@ -2388,7 +2479,15 @@ "restartServerWithNewPassword": "सर्वर को पुनरारंभ करें - यह नए पासवर्ड का उपयोग करेगा", "backToLogin": "लॉगइन पर वापस जाएँ", "forgotPassword": "पासवर्ड भूल गए?", - "defaultPasswordHint": "Default password: 123456 (unless INITIAL_PASSWORD was set)" + "defaultPasswordHint": "Default password: 123456 (unless INITIAL_PASSWORD was set)", + "Content-Disposition": "Content-Disposition", + "waitingForAuthorization": "Waiting for authorization...", + "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...", + "waitingForGoogleAuthorization": "Waiting for Google authorization...", + "waitingForIFlowAuthorization": "Waiting for iFlow authorization...", + "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...", + "Authorization": "Authorization", + "exchangingCodeForTokens": "Exchanging code for tokens..." }, "landing": { "brandName": "ओम्निरूट", @@ -2595,7 +2694,9 @@ "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.", "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.", "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.", - "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments." + "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.", + "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).", + "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage)." }, "legal": { "privacyPolicy": "गोपनीयता नीति", @@ -2805,5 +2906,48 @@ "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.", "activeDedupKeys": "Active Dedup Keys", "dedupWindow": "Dedup Window" + }, + "templatePayloads": { + "toolCalling": { + "toolDescription": "Get current weather for a location", + "userWeather": "What's the weather in Tokyo?", + "cityNameDescription": "The name of the city to get weather for" + }, + "multiTurn": { + "assistantExample": "I'd be happy to help you with that.", + "userFollowUp": "Can you elaborate on that?", + "userInitial": "I need help with", + "system": "You are a helpful assistant." + }, + "systemPrompt": { + "question": "What is the meaning of life?", + "systemInstruction": "Provide a thoughtful, philosophical answer." + }, + "simpleChat": { + "userGreeting": "Hello! How can I help you today?", + "system": "You are a helpful AI assistant." + }, + "thinking": { + "question": "Explain quantum computing" + }, + "streaming": { + "prompt": "Write a story about" + } + }, + "templateNames": { + "tool-calling": "Tool Calling", + "thinking": "Thinking", + "simple-chat": "Simple Chat", + "system-prompt": "System Prompt", + "streaming": "Streaming", + "multi-turn": "Multi-turn" + }, + "templateDescriptions": { + "simple-chat": "Basic chat template with system message", + "multi-turn": "Template for multi-turn conversations", + "thinking": "Template with reasoning/thinking budget", + "tool-calling": "Template for tool/function calling", + "system-prompt": "Template with custom system prompt", + "streaming": "Template for streaming responses" } } \ No newline at end of file diff --git a/src/i18n/messages/tr.json b/src/i18n/messages/tr.json index ec508a1dcc..047296fd30 100644 --- a/src/i18n/messages/tr.json +++ b/src/i18n/messages/tr.json @@ -190,7 +190,9 @@ "debugSection": "Debug", "helpSection": "Help", "primarySection": "Main", - "systemSection": "System" + "systemSection": "System", + "cache": "Cache", + "cacheShort": "Cache" }, "themesPage": { "title": "Temalar", @@ -2925,5 +2927,37 @@ "userInitial": "Bir konuda yardıma ihtiyacım var.", "userFollowUp": "Bunu detaylandırabilir misiniz?" } + }, + "cache": { + "title": "Cache Management", + "behavior": "Cache Behavior", + "behaviorBypass": "Bypass with header {header}.", + "tokensSavedSub": "Estimated from hits", + "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.", + "memoryEntries": "Memory Entries", + "dedupWindow": "Dedup Window", + "hitRate": "Hit Rate", + "idempotency": "Idempotency Layer", + "memoryEntriesSub": "In-memory LRU", + "tokensSaved": "Tokens Saved", + "cacheHits": "Cache Hits", + "autoRefresh": "Auto-refreshes every {seconds}s", + "dbEntriesSub": "Persisted (SQLite)", + "misses": "Misses", + "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.", + "cacheHitsSub": "of {total} total", + "total": "Total", + "refresh": "Refresh", + "clearAll": "Clear All", + "performance": "Cache Performance", + "unavailable": "Cache unavailable", + "description": "Monitor and manage semantic response cache, hit rates, and token savings.", + "clearError": "Failed to clear cache.", + "clearSuccess": "Cache cleared. {count} expired entries removed.", + "hits": "Hits", + "dbEntries": "DB Entries", + "behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).", + "activeDedupKeys": "Active Dedup Keys", + "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached." } } \ No newline at end of file