feat(ui): enhance model select modal UX and modal traffic lights (#1111)

* feat(model-select-modal): highlight added models and support bulk selection

- Add addedModelValues prop to highlight already-added models with primary color
- Sort models alphabetically per provider, with added models floated to top
- Replace green highlight with primary brand color (orange #E56A4A)
- Use check icon (10px) inline with model name instead of check_circle
- Replace Done button with info bar explaining click-to-toggle behavior
- Add ProviderIcon to provider group headers replacing colored dot
- Import ProviderIcon, remove unused Button import

* feat(cli-tools): wire addedModelValues, onDeselect, and auto-save to model select modals

- Pass selectedModels as addedModelValues to ModelSelectModal in OpenCode and Copilot cards
- Add onDeselect handler to remove model from list on second click
- Set closeOnSelect=false to allow bulk model selection
- Remove manual setModalOpen(false) from onSelect callbacks
- Add saveModels() silent auto-save triggered on modal close (OpenCodeToolCard)
- Use useRef to track latest selectedModels in closure-safe way

* feat(modal): functional traffic light close button with hover icon and tooltip

- Make red dot a clickable button that closes the modal
- Show ✕ icon inside red dot on hover via group-hover opacity transition
- Gray out yellow and green dots (cursor-not-allowed, no tooltip)
- Increase dot size from w-3 h-3 to w-4 h-4
- Add Tooltip with brand-matched color #FF5F56 on red dot
- Remove X close button from modal header

* feat(tooltip): add color prop for themed tooltip backgrounds

* feat(i18n): add translations for model select info bar and close tooltip

- Add 'Click to add, click again to remove. Changes are saved automatically.' to all 32 locales
- Add 'Close' translation to all 32 locales

* fix(ui): address code review feedback on modal UX and auto-save

- Modal: remove showCloseButton prop, use showTrafficLights for header
  condition, hide traffic lights on mobile (hidden md:flex), add mobile
  X button (md:hidden) with aria-label, add aria-label and title on
  traffic light close button
- OpenCodeToolCard: validate activeModel membership before saving —
  fallback to models[0] or empty string; clear/reassign activeModel
  on deselect when removed model was the active one
- CopilotToolCard: add useRef + selectedModelsRef, add saveModels()
  using /api/cli-tools/copilot-settings, wire auto-save on modal close
- ModelSelectModal: fix JSX formatting — separate info bar closing div
  from Search comment onto its own line
This commit is contained in:
Rigel Ramadhani Waloni
2026-05-15 09:21:24 +07:00
committed by GitHub
parent 4098f91ac5
commit 1fd3132647
37 changed files with 209 additions and 276 deletions

View File

@@ -12,7 +12,7 @@
"Logout": "تسجيل الخروج",
"Login": "تسجيل الدخول",
"Providers": "الموفرون",
"Usage": "الاستخدام",
"Usage": "الإحصائيات",
"API Key": "مفتاح API",
"Connected": "متصل",
"Disconnected": "غير متصل",
@@ -91,9 +91,7 @@
"Dark": "داكن",
"Auto": "تلقائي",
"Endpoint": "نقطة نهاية",
"Providers": "الموفرون",
"Combos": "تراكيب",
"Usage": "الإحصائيات",
"Quota Tracker": "متتبع الحصة",
"MITM": "MITM",
"CLI Tools": "أدوات CLI",
@@ -150,7 +148,6 @@
"No Proxy": "لا يوجد وكيل",
"Comma-separated hostnames/domains to bypass the proxy.": "أسماء المضيفين/النطاقات المفصولة بفواصل لتجاوز الوكيل.",
"Test proxy URL": "اختبر عنوان URL الوكيل",
"Apply": "تطبيق",
"Proxy settings applied": "تم تطبيق إعدادات الوكيل",
"Proxy enabled": "الوكيل مفعل",
"Proxy disabled": "الوكيل معطل",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "استخدم Antigravity IDE و GitHub Copilot → مع أي موفر/نموذج من 9Router",
"How it works:": "كيف يعمل:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "طلب Antigravity/Copilot IDE → إعادة توجيه DNS إلى localhost:443 → يعترض وكيل MITM → 9Router → الرد إلى Antigravity/Copilot",
"API Key": "مفتاح API",
"No API keys — create one in Keys page": "لا توجد مفاتيح API — قم بإنشاء واحدة في صفحة المفاتيح",
"sk_9router (default)": "sk_9router (افتراضي)",
"Server started": "تم بدء الخادم",
@@ -192,5 +188,5 @@
"Sudo Password Required": "كلمة مرور Sudo مطلوبة",
"Enter your sudo password to start/stop MITM server": "أدخل كلمة مرور sudo للبدء/الإيقاف من خادم MITM",
"Sudo Password": "كلمة مرور Sudo",
"Confirm": "تأكيد"
"Click to add, click again to remove. Changes are saved automatically.": "انقر للإضافة، انقر مرة أخرى للإزالة. يتم حفظ التغييرات تلقائيًا."
}

View File

@@ -12,7 +12,7 @@
"Logout": "লগ আউট",
"Login": "লগ ইন",
"Providers": "সরবরাহকারী",
"Usage": "ব্যবহার",
"Usage": "ব্যবহারের পরিসংখ্যান",
"API Key": "API কী",
"Connected": "সংযুক্ত",
"Disconnected": "বিচ্ছিন্ন",
@@ -91,9 +91,7 @@
"Dark": "গাঢ়",
"Auto": "স্বয়ংক্রিয়",
"Endpoint": "এন্ডপয়েন্ট",
"Providers": "সরবরাহকারী",
"Combos": "কম্বো",
"Usage": "ব্যবহারের পরিসংখ্যান",
"Quota Tracker": "কোটা ট্র্যাকার",
"MITM": "MITM",
"CLI Tools": "সরঞ্জাম",
@@ -150,7 +148,6 @@
"No Proxy": "কোন প্রক্সি নেই",
"Comma-separated hostnames/domains to bypass the proxy.": "প্রক্সি বাইপাস করার জন্য কমা-পৃথক হোস্টনাম/ডোমেইন।",
"Test proxy URL": "প্রক্সি URL পরীক্ষা করুন",
"Apply": "প্রয়োগ করুন",
"Proxy settings applied": "প্রক্সি সেটিংস প্রয়োগ করা হয়েছে",
"Proxy enabled": "প্রক্সি সক্ষম",
"Proxy disabled": "প্রক্সি অক্ষম",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE এবং GitHub Copilot ব্যবহার করুন → 9Router থেকে যেকোনো সরবরাহকারী/মডেলের সাথে",
"How it works:": "এটি কীভাবে কাজ করে:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE অনুরোধ → DNS কে localhost:443 তে রিডিরেক্ট করুন → MITM প্রক্সি ইন্টারসেপ্ট করে → 9Router → Antigravity/Copilot এ প্রতিক্রিয়া",
"API Key": "API কী",
"No API keys — create one in Keys page": "কোন API কী নেই — Keys পৃষ্ঠায় একটি তৈরি করুন",
"sk_9router (default)": "sk_9router (ডিফল্ট)",
"Server started": "সার্ভার শুরু হয়েছে",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo পাসওয়ার্ড প্রয়োজন",
"Enter your sudo password to start/stop MITM server": "MITM সার্ভার শুরু/বন্ধ করতে আপনার sudo পাসওয়ার্ড প্রবেশ করুন",
"Sudo Password": "Sudo পাসওয়ার্ড",
"Confirm": "নিশ্চিত করুন"
"Click to add, click again to remove. Changes are saved automatically.": "যোগ করতে ক্লিক করুন, সরাতে আবার ক্লিক করুন। পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সংরক্ষিত হয়।"
}

View File

@@ -12,7 +12,7 @@
"Logout": "Odhlásit se",
"Login": "Přihlásit se",
"Providers": "Poskytovatelé",
"Usage": "Použití",
"Usage": "Statistika",
"API Key": "Klíč API",
"Connected": "Připojeno",
"Disconnected": "Odpojeno",
@@ -91,9 +91,7 @@
"Dark": "Tmavý",
"Auto": "Automaticky",
"Endpoint": "Koncový bod",
"Providers": "Poskytovatelé",
"Combos": "Kombinace",
"Usage": "Statistika",
"Quota Tracker": "Sledování kvót",
"MITM": "MITM",
"CLI Tools": "Nástroje CLI",
@@ -150,7 +148,6 @@
"No Proxy": "Bez proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Čárkou oddělené názvy hostitelů/domény pro obejití proxy.",
"Test proxy URL": "Testovat URL proxy",
"Apply": "Aplikovat",
"Proxy settings applied": "Nastavení proxy aplikováno",
"Proxy enabled": "Proxy povolena",
"Proxy disabled": "Proxy zakázána",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Použijte Antigravity IDE a GitHub Copilot → s JAKÝMKOLIV poskytovatelem/modelem z 9Router",
"How it works:": "Jak to funguje:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Požadavek Antigravity/Copilot IDE → Přesměrování DNS na localhost:443 → Proxy MITM zachycuje → 9Router → odpověď na Antigravity/Copilot",
"API Key": "Klíč API",
"No API keys — create one in Keys page": "Žádné klíče API — vytvořte jeden na stránce Klíče",
"sk_9router (default)": "sk_9router (výchozí)",
"Server started": "Server spuštěn",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Je vyžadováno heslo Sudo",
"Enter your sudo password to start/stop MITM server": "Zadejte heslo sudo pro spuštění/zastavení serveru MITM",
"Sudo Password": "Heslo sudo",
"Confirm": "Potvrdit"
"Click to add, click again to remove. Changes are saved automatically.": "Kliknutím přidáte, dalším kliknutím odeberete. Změny se ukládají automaticky."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Log ud",
"Login": "Log ind",
"Providers": "Udbydere",
"Usage": "Forbrug",
"Usage": "Forbrugsstatistik",
"API Key": "API-nøgle",
"Connected": "Forbundet",
"Disconnected": "Afbrudt",
@@ -91,9 +91,7 @@
"Dark": "Mørk",
"Auto": "Automatisk",
"Endpoint": "Slutpunkt",
"Providers": "Udbydere",
"Combos": "Kombinationer",
"Usage": "Forbrugsstatistik",
"Quota Tracker": "Kvotetracker",
"MITM": "MITM",
"CLI Tools": "Værktøjer",
@@ -150,7 +148,6 @@
"No Proxy": "Ingen proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Kommaseparerede værtsnavne/domæner for at omgå proxyen.",
"Test proxy URL": "Test proxy-URL",
"Apply": "Anvend",
"Proxy settings applied": "Proxyindstillinger anvendt",
"Proxy enabled": "Proxy aktiveret",
"Proxy disabled": "Proxy deaktiveret",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Brug Antigravity IDE & GitHub Copilot → med ENHVER udbyder/model fra 9Router",
"How it works:": "Sådan virker det:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-anmodning → DNS-omdirigering til localhost:443 → MITM-proxy aflytter → 9Router → svar til Antigravity/Copilot",
"API Key": "API-nøgle",
"No API keys — create one in Keys page": "Ingen API-nøgler — opret en på Keys-siden",
"sk_9router (default)": "sk_9router (standard)",
"Server started": "Server startet",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo-adgangskode påkrævet",
"Enter your sudo password to start/stop MITM server": "Indtast din sudo-adgangskode for at starte/stoppe MITM-server",
"Sudo Password": "Sudo-adgangskode",
"Confirm": "Bekræft"
"Click to add, click again to remove. Changes are saved automatically.": "Klik for at tilføje, klik igen for at fjerne. Ændringer gemmes automatisk."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Abmelden",
"Login": "Anmelden",
"Providers": "Anbieter",
"Usage": "Verwendung",
"Usage": "Statistiken",
"API Key": "API-Schlüssel",
"Connected": "Verbunden",
"Disconnected": "Getrennt",
@@ -91,9 +91,7 @@
"Dark": "Dunkel",
"Auto": "Automatisch",
"Endpoint": "Endpunkt",
"Providers": "Anbieter",
"Combos": "Kombinationen",
"Usage": "Statistiken",
"Quota Tracker": "Kontingenttracker",
"MITM": "MITM",
"CLI Tools": "CLI-Tools",
@@ -150,7 +148,6 @@
"No Proxy": "Kein Proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Kommagetrennte Hostnamen/Domänen zum Umgehen des Proxys.",
"Test proxy URL": "Proxy-URL testen",
"Apply": "Anwenden",
"Proxy settings applied": "Proxy-Einstellungen angewendet",
"Proxy enabled": "Proxy aktiviert",
"Proxy disabled": "Proxy deaktiviert",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Verwenden Sie Antigravity IDE und GitHub Copilot → mit JEDEM Anbieter/Modell von 9Router",
"How it works:": "So funktioniert es:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-Anforderung → DNS-Umleitung auf localhost:443 → MITM-Proxy abfangen → 9Router → Antwort auf Antigravity/Copilot",
"API Key": "API-Schlüssel",
"No API keys — create one in Keys page": "Keine API-Schlüssel — erstellen Sie einen auf der Seite Schlüssel",
"sk_9router (default)": "sk_9router (Standard)",
"Server started": "Server gestartet",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo-Passwort erforderlich",
"Enter your sudo password to start/stop MITM server": "Geben Sie Ihr Sudo-Passwort ein, um den MITM-Server zu starten/stoppen",
"Sudo Password": "Sudo-Passwort",
"Confirm": "Bestätigen"
"Click to add, click again to remove. Changes are saved automatically.": "Klicken zum Hinzufügen, erneut klicken zum Entfernen. Änderungen werden automatisch gespeichert."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Έξοδος",
"Login": "Σύνδεση",
"Providers": "Παρόχοι",
"Usage": "Χρήση",
"Usage": "Στατιστικά χρήσης",
"API Key": "Κλειδί API",
"Connected": "Συνδεδεμένο",
"Disconnected": "Αποσυνδεδεμένο",
@@ -91,9 +91,7 @@
"Dark": "Σκοτεινό",
"Auto": "Αυτόματο",
"Endpoint": "Τελικό σημείο",
"Providers": "Παρόχοι",
"Combos": "Συνδυασμοί",
"Usage": "Στατιστικά χρήσης",
"Quota Tracker": "Παρακολούθηση ποσόστωσης",
"MITM": "MITM",
"CLI Tools": "Εργαλεία",
@@ -150,7 +148,6 @@
"No Proxy": "Χωρίς διακομιστή μεσολάβησης",
"Comma-separated hostnames/domains to bypass the proxy.": "Ονόματα κεντρικών υπολογιστών/τομείς χωρισμένοι με κόμμα για να παραστούν τον διακομιστή μεσολάβησης.",
"Test proxy URL": "Δοκιμή URL διακομιστή μεσολάβησης",
"Apply": "Εφαρμογή",
"Proxy settings applied": "Ρυθμίσεις διακομιστή μεσολάβησης εφαρμόστηκαν",
"Proxy enabled": "Διακομιστής μεσολάβησης ενεργοποιημένος",
"Proxy disabled": "Διακομιστής μεσολάβησης απενεργοποιημένος",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Χρησιμοποιήστε Antigravity IDE & GitHub Copilot → με ΟΠΟΙΟΝΔΗΠΟΤΕ πάροχο/μοντέλο από 9Router",
"How it works:": "Πώς λειτουργεί:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Αίτημα Antigravity/Copilot IDE → Ανακατεύθυνση DNS στο localhost:443 → Ο διακομιστής μεσολάβησης MITM παρεμβαίνει → 9Router → απάντηση στο Antigravity/Copilot",
"API Key": "Κλειδί API",
"No API keys — create one in Keys page": "Δεν υπάρχουν κλειδιά API — δημιουργήστε ένα στη σελίδα Keys",
"sk_9router (default)": "sk_9router (προεπιλεγμένο)",
"Server started": "Ο διακομιστής ξεκίνησε",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Απαιτείται κωδικός πρόσβασης Sudo",
"Enter your sudo password to start/stop MITM server": "Εισαγάγετε τον κωδικό πρόσβασης sudo για να ξεκινήσετε/διακόψετε τον διακομιστή MITM",
"Sudo Password": "Κωδικός πρόσβασης Sudo",
"Confirm": "Επιβεβαίωση"
"Click to add, click again to remove. Changes are saved automatically.": "Κάντε κλικ για προσθήκη, κάντε ξανά κλικ για αφαίρεση. Οι αλλαγές αποθηκεύονται αυτόματα."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Cerrar sesión",
"Login": "Iniciar sesión",
"Providers": "Proveedores",
"Usage": "Uso",
"Usage": "Estadísticas",
"API Key": "Clave API",
"Connected": "Conectado",
"Disconnected": "Desconectado",
@@ -91,9 +91,7 @@
"Dark": "Oscuro",
"Auto": "Automático",
"Endpoint": "Punto final",
"Providers": "Proveedores",
"Combos": "Combinaciones",
"Usage": "Estadísticas",
"Quota Tracker": "Rastreador de cuota",
"MITM": "MITM",
"CLI Tools": "Herramientas CLI",
@@ -150,7 +148,6 @@
"No Proxy": "Sin proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Nombres de host/dominios separados por comas para omitir el proxy.",
"Test proxy URL": "Prueba URL del proxy",
"Apply": "Aplicar",
"Proxy settings applied": "Configuración de proxy aplicada",
"Proxy enabled": "Proxy habilitado",
"Proxy disabled": "Proxy deshabilitado",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Use Antigravity IDE y GitHub Copilot → con CUALQUIER proveedor/modelo de 9Router",
"How it works:": "Cómo funciona:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitud de Antigravity/Copilot IDE → Redireccionamiento DNS a localhost:443 → El proxy MITM intercepta → 9Router → respuesta a Antigravity/Copilot",
"API Key": "Clave API",
"No API keys — create one in Keys page": "Sin claves API — cree una en la página Claves",
"sk_9router (default)": "sk_9router (predeterminado)",
"Server started": "Servidor iniciado",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Contraseña de Sudo requerida",
"Enter your sudo password to start/stop MITM server": "Ingrese su contraseña de sudo para iniciar/detener el servidor MITM",
"Sudo Password": "Contraseña de sudo",
"Confirm": "Confirmar"
"Click to add, click again to remove. Changes are saved automatically.": "Haz clic para agregar, haz clic de nuevo para eliminar. Los cambios se guardan automáticamente."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Kirjaudu ulos",
"Login": "Kirjaudu sisään",
"Providers": "Palveluntarjoajat",
"Usage": "Käyttö",
"Usage": "Käyttötilastot",
"API Key": "API-avain",
"Connected": "Yhdistetty",
"Disconnected": "Yhteys katkaistu",
@@ -91,9 +91,7 @@
"Dark": "Tumma",
"Auto": "Automaattinen",
"Endpoint": "Pääteeksi",
"Providers": "Palveluntarjoajat",
"Combos": "Yhdistelmät",
"Usage": "Käyttötilastot",
"Quota Tracker": "Kiintiyden seuranta",
"MITM": "MITM",
"CLI Tools": "Työkalut",
@@ -150,7 +148,6 @@
"No Proxy": "Ei välityspalvelinta",
"Comma-separated hostnames/domains to bypass the proxy.": "Pilkulla erotetut isäntänimet/etäisyydet välityspalvelimen ohittamiseksi.",
"Test proxy URL": "Testaa välityspalvelimen URL",
"Apply": "Käytä",
"Proxy settings applied": "Välityspalvelimen asetukset käytössä",
"Proxy enabled": "Välityspalvelin otettu käyttöön",
"Proxy disabled": "Välityspalvelin poistettu käytöstä",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Käytä Antigravity IDE:tä ja GitHub Copilot:ia → minkä tahansa palveluntarjoajan/mallin kanssa 9Routerista",
"How it works:": "Kuinka se toimii:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-pyyntö → DNS-uudelleenohjaus localhost:443:iin → MITM-välityspalvelin sieppaa → 9Router → vastaus Antigravity/Copilot:ille",
"API Key": "API-avain",
"No API keys — create one in Keys page": "Ei API-avaimia — luo yksi Keys-sivulla",
"sk_9router (default)": "sk_9router (oletus)",
"Server started": "Palvelin käynnistetty",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo-salasana vaaditaan",
"Enter your sudo password to start/stop MITM server": "Kirjoita sudo-salasanasi MITM-palvelimen käynnistämiseksi/pysäyttämiseksi",
"Sudo Password": "Sudo-salasana",
"Confirm": "Vahvista"
"Click to add, click again to remove. Changes are saved automatically.": "Napsauta lisätäksesi, napsauta uudelleen poistaaksesi. Muutokset tallennetaan automaattisesti."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Déconnexion",
"Login": "Connexion",
"Providers": "Fournisseurs",
"Usage": "Utilisation",
"Usage": "Statistiques",
"API Key": "Clé API",
"Connected": "Connecté",
"Disconnected": "Déconnecté",
@@ -91,9 +91,7 @@
"Dark": "Sombre",
"Auto": "Automatique",
"Endpoint": "Point final",
"Providers": "Fournisseurs",
"Combos": "Combinaisons",
"Usage": "Statistiques",
"Quota Tracker": "Suivi des quotas",
"MITM": "MITM",
"CLI Tools": "Outils CLI",
@@ -150,7 +148,6 @@
"No Proxy": "Pas de proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Noms d'hôtes/domaines séparés par des virgules pour contourner le proxy.",
"Test proxy URL": "Tester l'URL du proxy",
"Apply": "Appliquer",
"Proxy settings applied": "Paramètres de proxy appliqués",
"Proxy enabled": "Proxy activé",
"Proxy disabled": "Proxy désactivé",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Utilisez Antigravity IDE et GitHub Copilot → avec N'IMPORTE QUEL fournisseur/modèle de 9Router",
"How it works:": "Comment ça marche :",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Demande Antigravity/Copilot IDE → Redirection DNS vers localhost:443 → Le proxy MITM intercepte → 9Router → réponse à Antigravity/Copilot",
"API Key": "Clé API",
"No API keys — create one in Keys page": "Aucune clé API — créez-en une dans la page Clés",
"sk_9router (default)": "sk_9router (par défaut)",
"Server started": "Serveur démarré",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Mot de passe Sudo requis",
"Enter your sudo password to start/stop MITM server": "Entrez votre mot de passe sudo pour démarrer/arrêter le serveur MITM",
"Sudo Password": "Mot de passe sudo",
"Confirm": "Confirmer"
"Click to add, click again to remove. Changes are saved automatically.": "Cliquez pour ajouter, cliquez à nouveau pour supprimer. Les modifications sont enregistrées automatiquement."
}

View File

@@ -12,7 +12,7 @@
"Logout": "התנתקות",
"Login": "כניסה",
"Providers": "ספקים",
"Usage": "שימוש",
"Usage": "סטטיסטיקה",
"API Key": "מפתח API",
"Connected": "מחובר",
"Disconnected": "מנותק",
@@ -91,9 +91,7 @@
"Dark": "אפל",
"Auto": "אוטומטי",
"Endpoint": "נקודת קצה",
"Providers": "ספקים",
"Combos": "שילובים",
"Usage": "סטטיסטיקה",
"Quota Tracker": "עוקב הקצאה",
"MITM": "MITM",
"CLI Tools": "כלים CLI",
@@ -150,7 +148,6 @@
"No Proxy": "ללא פרוקסי",
"Comma-separated hostnames/domains to bypass the proxy.": "שמות משדר/תחומים מופרדים בפסיקים לעקיפת הפרוקסי.",
"Test proxy URL": "בדוק URL פרוקסי",
"Apply": "החל",
"Proxy settings applied": "הגדרות פרוקסי הופעלו",
"Proxy enabled": "פרוקסי הופעל",
"Proxy disabled": "פרוקסי מבוטל",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "השתמש ב-Antigravity IDE ו-GitHub Copilot → עם כל ספק/מודל מ-9Router",
"How it works:": "איך זה עובד:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "בקשת Antigravity/Copilot IDE → הפניה DNS ל-localhost:443 → פרוקסי MITM חוטף → 9Router → תגובה ל-Antigravity/Copilot",
"API Key": "מפתח API",
"No API keys — create one in Keys page": "אין מפתחות API — צור אחד בעמוד Keys",
"sk_9router (default)": "sk_9router (ברירת מחדל)",
"Server started": "השרת התחיל",
@@ -192,5 +188,5 @@
"Sudo Password Required": "סיסמת Sudo נדרשת",
"Enter your sudo password to start/stop MITM server": "הזן את סיסמת sudo שלך כדי להתחיל/עצור שרת MITM",
"Sudo Password": "סיסמת Sudo",
"Confirm": "אישור"
"Click to add, click again to remove. Changes are saved automatically.": "לחץ להוספה, לחץ שוב להסרה. השינויים נשמרים אוטומטית."
}

View File

@@ -12,7 +12,7 @@
"Logout": "लॉग आउट",
"Login": "लॉगिन",
"Providers": "प्रदाता",
"Usage": "उपयोग",
"Usage": "उपयोग के आंकड़े",
"API Key": "API कुंजी",
"Connected": "जुड़ा हुआ",
"Disconnected": "डिस्कनेक्ट किया गया",
@@ -91,9 +91,7 @@
"Dark": "अंधेरा",
"Auto": "स्वचालित",
"Endpoint": "एंडपॉइंट",
"Providers": "प्रदाता",
"Combos": "कॉम्बो",
"Usage": "उपयोग के आंकड़े",
"Quota Tracker": "कोटा ट्रैकर",
"MITM": "MITM",
"CLI Tools": "उपकरण",
@@ -150,7 +148,6 @@
"No Proxy": "कोई प्रॉक्सी नहीं",
"Comma-separated hostnames/domains to bypass the proxy.": "प्रॉक्सी को बायपास करने के लिए अल्पविराम से अलग की गई होस्टनाम/डोमेन।",
"Test proxy URL": "प्रॉक्सी URL का परीक्षण करें",
"Apply": "लागू करें",
"Proxy settings applied": "प्रॉक्सी सेटिंग्स लागू की गई",
"Proxy enabled": "प्रॉक्सी सक्षम",
"Proxy disabled": "प्रॉक्सी अक्षम",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE और GitHub Copilot का उपयोग करें → 9Router से किसी भी प्रदाता/मॉडल के साथ",
"How it works:": "यह कैसे काम करता है:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE अनुरोध → DNS को localhost:443 में पुनर्निर्देशित करें → MITM प्रॉक्सी इंटरसेप्ट करता है → 9Router → Antigravity/Copilot को प्रतिक्रिया",
"API Key": "API कुंजी",
"No API keys — create one in Keys page": "कोई API कुंजी नहीं — Keys पृष्ठ में एक बनाएं",
"sk_9router (default)": "sk_9router (डिफ़ॉल्ट)",
"Server started": "सर्वर शुरू किया गया",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo पासवर्ड आवश्यक है",
"Enter your sudo password to start/stop MITM server": "MITM सर्वर शुरू/रोकने के लिए अपना sudo पासवर्ड दर्ज करें",
"Sudo Password": "Sudo पासवर्ड",
"Confirm": "पुष्टि करें"
"Click to add, click again to remove. Changes are saved automatically.": "जोड़ने के लिए क्लिक करें, हटाने के लिए फिर से क्लिक करें। परिवर्तन स्वचालित रूप से सहेजे जाते हैं।"
}

View File

@@ -12,7 +12,7 @@
"Logout": "Kijelentkezés",
"Login": "Bejelentkezés",
"Providers": "Szolgáltatók",
"Usage": "Használat",
"Usage": "Használati statisztika",
"API Key": "API-kulcs",
"Connected": "Csatlakoztatva",
"Disconnected": "Leválasztva",
@@ -91,9 +91,7 @@
"Dark": "Sötét",
"Auto": "Automatikus",
"Endpoint": "Végpont",
"Providers": "Szolgáltatók",
"Combos": "Kombinációk",
"Usage": "Használati statisztika",
"Quota Tracker": "Kvóta nyomkövetés",
"MITM": "MITM",
"CLI Tools": "Eszközök",
@@ -150,7 +148,6 @@
"No Proxy": "Nincs proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Vesszővel elválasztott gazdanév/tartomány a proxy megkerüléséhez.",
"Test proxy URL": "Proxy URL-cím tesztelése",
"Apply": "Alkalmazás",
"Proxy settings applied": "Proxy beállítások alkalmazva",
"Proxy enabled": "Proxy engedélyezve",
"Proxy disabled": "Proxy letiltva",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE és GitHub Copilot használata → az 9Router bármelyik szolgáltatójával/modelljével",
"How it works:": "Hogyan működik:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE kérés → DNS átirányítás a localhost:443-ra → MITM proxy elfogja → 9Router → válasz Antigravity/Copilot-nak",
"API Key": "API-kulcs",
"No API keys — create one in Keys page": "Nincsenek API-kulcsok — hozzon létre egyet a Keys oldalon",
"sk_9router (default)": "sk_9router (alapértelmezett)",
"Server started": "Szerver elindult",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo jelszó szükséges",
"Enter your sudo password to start/stop MITM server": "Adja meg sudo jelszavát a MITM szerver indításához/leállításához",
"Sudo Password": "Sudo jelszó",
"Confirm": "Megerősítés"
"Click to add, click again to remove. Changes are saved automatically.": "Kattintson a hozzáadáshoz, kattintson újra az eltávolításhoz. A változtatások automatikusan mentésre kerülnek."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Keluar",
"Login": "Masuk",
"Providers": "Penyedia",
"Usage": "Penggunaan",
"Usage": "Statistik Penggunaan",
"API Key": "Kunci API",
"Connected": "Terhubung",
"Disconnected": "Terputus",
@@ -91,9 +91,7 @@
"Dark": "Gelap",
"Auto": "Otomatis",
"Endpoint": "Titik Akhir",
"Providers": "Penyedia",
"Combos": "Kombinasi",
"Usage": "Statistik Penggunaan",
"Quota Tracker": "Pelacak Kuota",
"MITM": "MITM",
"CLI Tools": "Alat",
@@ -150,7 +148,6 @@
"No Proxy": "Tidak Ada Proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Nama host/domain yang dipisahkan koma untuk melewati proxy.",
"Test proxy URL": "Uji URL Proxy",
"Apply": "Terapkan",
"Proxy settings applied": "Pengaturan proxy diterapkan",
"Proxy enabled": "Proxy diaktifkan",
"Proxy disabled": "Proxy dinonaktifkan",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Gunakan Antigravity IDE & GitHub Copilot → dengan PENYEDIA/model APA PUN dari 9Router",
"How it works:": "Cara kerjanya:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Permintaan Antigravity/Copilot IDE → Pengalihan DNS ke localhost:443 → Proxy MITM mengintersep → 9Router → respons ke Antigravity/Copilot",
"API Key": "Kunci API",
"No API keys — create one in Keys page": "Tidak ada kunci API — buat satu di halaman Keys",
"sk_9router (default)": "sk_9router (bawaan)",
"Server started": "Server dimulai",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Kata Sandi Sudo Diperlukan",
"Enter your sudo password to start/stop MITM server": "Masukkan kata sandi sudo Anda untuk memulai/menghentikan server MITM",
"Sudo Password": "Kata Sandi Sudo",
"Confirm": "Konfirmasi"
"Click to add, click again to remove. Changes are saved automatically.": "Klik untuk menambah, klik lagi untuk menghapus. Perubahan disimpan secara otomatis."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Esci",
"Login": "Accedi",
"Providers": "Provider",
"Usage": "Utilizzo",
"Usage": "Statistiche di utilizzo",
"API Key": "Chiave API",
"Connected": "Connesso",
"Disconnected": "Disconnesso",
@@ -91,9 +91,7 @@
"Dark": "Scuro",
"Auto": "Automatico",
"Endpoint": "Endpoint",
"Providers": "Provider",
"Combos": "Combinazioni",
"Usage": "Statistiche di utilizzo",
"Quota Tracker": "Tracker quota",
"MITM": "MITM",
"CLI Tools": "Strumenti",
@@ -150,7 +148,6 @@
"No Proxy": "Nessun proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Nomi host/domini separati da virgole per ignorare il proxy.",
"Test proxy URL": "Test URL proxy",
"Apply": "Applica",
"Proxy settings applied": "Impostazioni proxy applicate",
"Proxy enabled": "Proxy abilitato",
"Proxy disabled": "Proxy disabilitato",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Usa Antigravity IDE & GitHub Copilot → con QUALSIASI provider/modello da 9Router",
"How it works:": "Come funziona:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Richiesta Antigravity/Copilot IDE → Reindirizzamento DNS a localhost:443 → Il proxy MITM intercetta → 9Router → Risposta a Antigravity/Copilot",
"API Key": "Chiave API",
"No API keys — create one in Keys page": "Nessuna chiave API — crearne una nella pagina Chiavi",
"sk_9router (default)": "sk_9router (predefinito)",
"Server started": "Server avviato",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Password Sudo richiesta",
"Enter your sudo password to start/stop MITM server": "Inserisci la tua password sudo per avviare/arrestare il server MITM",
"Sudo Password": "Password Sudo",
"Confirm": "Conferma"
"Click to add, click again to remove. Changes are saved automatically.": "Clicca per aggiungere, clicca di nuovo per rimuovere. Le modifiche vengono salvate automaticamente."
}

View File

@@ -12,7 +12,7 @@
"Logout": "ログアウト",
"Login": "ログイン",
"Providers": "プロバイダー",
"Usage": "使用状況",
"Usage": "統計",
"API Key": "APIキー",
"Connected": "接続済み",
"Disconnected": "未接続",
@@ -91,9 +91,7 @@
"Dark": "ダーク",
"Auto": "自動",
"Endpoint": "エンドポイント",
"Providers": "プロバイダー",
"Combos": "コンボ",
"Usage": "統計",
"Quota Tracker": "クォータトラッカー",
"MITM": "MITM",
"CLI Tools": "CLIツール",
@@ -150,7 +148,6 @@
"No Proxy": "プロキシなし",
"Comma-separated hostnames/domains to bypass the proxy.": "プロキシをバイパスするためのコンマ区切りのホスト名/ドメイン。",
"Test proxy URL": "プロキシURLをテスト",
"Apply": "適用",
"Proxy settings applied": "プロキシ設定が適用されました",
"Proxy enabled": "プロキシが有効になりました",
"Proxy disabled": "プロキシが無効になりました",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE & GitHub Copilot → 9Router の任意のプロバイダー/モデルを使用",
"How it works:": "しくみ:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE リクエスト → localhost:443 への DNS リダイレクト → MITM プロキシが傍受 → 9Router → Antigravity/Copilot への応答",
"API Key": "APIキー",
"No API keys — create one in Keys page": "APIキーがありません — キーページで1つ作成してください",
"sk_9router (default)": "sk_9routerデフォルト",
"Server started": "サーバーが開始されました",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudoパスワードが必要です",
"Enter your sudo password to start/stop MITM server": "MITMサーバーを開始/停止するには、sudoパスワードを入力してください",
"Sudo Password": "Sudoパスワード",
"Confirm": "確認"
"Click to add, click again to remove. Changes are saved automatically.": "クリックで追加、もう一度クリックで削除。変更は自動的に保存されます。"
}

View File

@@ -12,7 +12,7 @@
"Logout": "로그아웃",
"Login": "로그인",
"Providers": "제공자",
"Usage": "사용 현황",
"Usage": "통계",
"API Key": "API 키",
"Connected": "연결됨",
"Disconnected": "연결 해제됨",
@@ -91,9 +91,7 @@
"Dark": "어두움",
"Auto": "자동",
"Endpoint": "엔드포인트",
"Providers": "제공자",
"Combos": "조합",
"Usage": "통계",
"Quota Tracker": "할당량 추적",
"MITM": "MITM",
"CLI Tools": "CLI 도구",
@@ -150,7 +148,6 @@
"No Proxy": "프록시 없음",
"Comma-separated hostnames/domains to bypass the proxy.": "프록시를 우회하기 위한 쉼표로 구분된 호스트명/도메인입니다.",
"Test proxy URL": "프록시 URL 테스트",
"Apply": "적용",
"Proxy settings applied": "프록시 설정이 적용되었습니다",
"Proxy enabled": "프록시 활성화됨",
"Proxy disabled": "프록시 비활성화됨",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE 및 GitHub Copilot 사용 → 9Router의 모든 제공자/모델과 함께",
"How it works:": "작동 방식:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE 요청 → localhost:443로 DNS 리디렉션 → MITM 프록시가 가로챔 → 9Router → Antigravity/Copilot으로 응답",
"API Key": "API 키",
"No API keys — create one in Keys page": "API 키 없음 — 키 페이지에서 만들기",
"sk_9router (default)": "sk_9router (기본값)",
"Server started": "서버 시작됨",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo 암호 필요",
"Enter your sudo password to start/stop MITM server": "MITM 서버를 시작/중지하려면 sudo 암호를 입력하세요",
"Sudo Password": "Sudo 암호",
"Confirm": "확인"
"Click to add, click again to remove. Changes are saved automatically.": "클릭하여 추가, 다시 클릭하여 제거. 변경 사항은 자동으로 저장됩니다."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Afmelden",
"Login": "Aanmelden",
"Providers": "Providers",
"Usage": "Gebruik",
"Usage": "Statistieken",
"API Key": "API-sleutel",
"Connected": "Verbonden",
"Disconnected": "Verbroken",
@@ -91,9 +91,7 @@
"Dark": "Donker",
"Auto": "Automatisch",
"Endpoint": "Eindpunt",
"Providers": "Providers",
"Combos": "Combinaties",
"Usage": "Statistieken",
"Quota Tracker": "Quotabijhouder",
"MITM": "MITM",
"CLI Tools": "CLI-tools",
@@ -150,7 +148,6 @@
"No Proxy": "Geen proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Door komma's gescheiden hostnamen/domeinen om de proxy te omzeilen.",
"Test proxy URL": "Proxy-URL testen",
"Apply": "Toepassen",
"Proxy settings applied": "Proxy-instellingen toegepast",
"Proxy enabled": "Proxy ingeschakeld",
"Proxy disabled": "Proxy uitgeschakeld",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Gebruik Antigravity IDE en GitHub Copilot → met ELKE provider/model van 9Router",
"How it works:": "Hoe het werkt:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-aanvraag → DNS-omleiding naar localhost:443 → MITM-proxy onderschept → 9Router → antwoord naar Antigravity/Copilot",
"API Key": "API-sleutel",
"No API keys — create one in Keys page": "Geen API-sleutels — maak er één aan op de pagina Sleutels",
"sk_9router (default)": "sk_9router (standaard)",
"Server started": "Server gestart",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo-wachtwoord vereist",
"Enter your sudo password to start/stop MITM server": "Voer uw sudo-wachtwoord in om de MITM-server te starten/stoppen",
"Sudo Password": "Sudo-wachtwoord",
"Confirm": "Bevestigen"
"Click to add, click again to remove. Changes are saved automatically.": "Klik om toe te voegen, klik opnieuw om te verwijderen. Wijzigingen worden automatisch opgeslagen."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Logg ut",
"Login": "Logg inn",
"Providers": "Leverandører",
"Usage": "Bruk",
"Usage": "Bruksstatistikk",
"API Key": "API-nøkkel",
"Connected": "Tilkoblet",
"Disconnected": "Frakoblet",
@@ -91,9 +91,7 @@
"Dark": "Mørk",
"Auto": "Automatisk",
"Endpoint": "Endepunkt",
"Providers": "Leverandører",
"Combos": "Kombinasjoner",
"Usage": "Bruksstatistikk",
"Quota Tracker": "Kvotasporer",
"MITM": "MITM",
"CLI Tools": "Verktøy",
@@ -150,7 +148,6 @@
"No Proxy": "Ingen proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Kommaseparerte vertsnavner/domener for å omgå proxyen.",
"Test proxy URL": "Test proxy-URL",
"Apply": "Bruk",
"Proxy settings applied": "Proxyinnstillinger brukt",
"Proxy enabled": "Proxy aktivert",
"Proxy disabled": "Proxy deaktivert",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Bruk Antigravity IDE & GitHub Copilot → med ENHVER leverandør/modell fra 9Router",
"How it works:": "Slik fungerer det:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-forespørsel → DNS-omdirigering til localhost:443 → MITM-proxy avlytt → 9Router → svar til Antigravity/Copilot",
"API Key": "API-nøkkel",
"No API keys — create one in Keys page": "Ingen API-nøkler — lag en på Keys-siden",
"sk_9router (default)": "sk_9router (standard)",
"Server started": "Server startet",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo-passord påkrevd",
"Enter your sudo password to start/stop MITM server": "Skriv inn sudo-passordet ditt for å starte/stoppe MITM-server",
"Sudo Password": "Sudo-passord",
"Confirm": "Bekreft"
"Click to add, click again to remove. Changes are saved automatically.": "Klikk for å legge til, klikk igjen for å fjerne. Endringer lagres automatisk."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Wyloguj się",
"Login": "Zaloguj się",
"Providers": "Dostawcy",
"Usage": "Użycie",
"Usage": "Statystyka",
"API Key": "Klucz API",
"Connected": "Połączony",
"Disconnected": "Rozłączony",
@@ -91,9 +91,7 @@
"Dark": "Ciemny",
"Auto": "Automatycznie",
"Endpoint": "Punkt końcowy",
"Providers": "Dostawcy",
"Combos": "Kombinacje",
"Usage": "Statystyka",
"Quota Tracker": "Śledzenie limitów",
"MITM": "MITM",
"CLI Tools": "Narzędzia CLI",
@@ -150,7 +148,6 @@
"No Proxy": "Bez serwera proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Nazwy hostów/domeny oddzielone przecinkami do pominięcia serwera proxy.",
"Test proxy URL": "Przetestuj URL serwera proxy",
"Apply": "Zastosuj",
"Proxy settings applied": "Ustawienia serwera proxy zastosowane",
"Proxy enabled": "Serwer proxy włączony",
"Proxy disabled": "Serwer proxy wyłączony",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Użyj Antigravity IDE i GitHub Copilot → z DOWOLNYM dostawcą/modelem z 9Router",
"How it works:": "Jak to działa:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Żądanie Antigravity/Copilot IDE → Przekierowanie DNS na localhost:443 → Serwer proxy MITM przechwytuje → 9Router → odpowiedź do Antigravity/Copilot",
"API Key": "Klucz API",
"No API keys — create one in Keys page": "Brak kluczy API — utwórz jeden na stronie Klucze",
"sk_9router (default)": "sk_9router (domyślnie)",
"Server started": "Serwer uruchomiony",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Wymagane hasło Sudo",
"Enter your sudo password to start/stop MITM server": "Wprowadź hasło sudo, aby uruchomić/zatrzymać serwer MITM",
"Sudo Password": "Hasło sudo",
"Confirm": "Potwierdź"
"Click to add, click again to remove. Changes are saved automatically.": "Kliknij, aby dodać, kliknij ponownie, aby usunąć. Zmiany są zapisywane automatycznie."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Sair",
"Login": "Conectar",
"Providers": "Provedores",
"Usage": "Uso",
"Usage": "Estatísticas",
"API Key": "Chave API",
"Connected": "Conectado",
"Disconnected": "Desconectado",
@@ -91,9 +91,7 @@
"Dark": "Escuro",
"Auto": "Automático",
"Endpoint": "Ponto de extremidade",
"Providers": "Provedores",
"Combos": "Combinações",
"Usage": "Estatísticas",
"Quota Tracker": "Rastreador de cota",
"MITM": "MITM",
"CLI Tools": "Ferramentas CLI",
@@ -150,7 +148,6 @@
"No Proxy": "Sem proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Nomes de host/domínios separados por vírgula para contornar o proxy.",
"Test proxy URL": "Testar URL do proxy",
"Apply": "Aplicar",
"Proxy settings applied": "Configurações de proxy aplicadas",
"Proxy enabled": "Proxy ativado",
"Proxy disabled": "Proxy desativado",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Use Antigravity IDE e GitHub Copilot → com QUALQUER provedor/modelo do 9Router",
"How it works:": "Como funciona:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitação do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM intercepta → 9Router → resposta para Antigravity/Copilot",
"API Key": "Chave API",
"No API keys — create one in Keys page": "Sem chaves de API — crie uma na página Chaves",
"sk_9router (default)": "sk_9router (padrão)",
"Server started": "Servidor iniciado",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Senha Sudo necessária",
"Enter your sudo password to start/stop MITM server": "Digite sua senha sudo para iniciar/parar o servidor MITM",
"Sudo Password": "Senha sudo",
"Confirm": "Confirmar"
"Click to add, click again to remove. Changes are saved automatically.": "Clique para adicionar, clique novamente para remover. As alterações são salvas automaticamente."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Terminar sessão",
"Login": "Iniciar sessão",
"Providers": "Fornecedores",
"Usage": "Utilização",
"Usage": "Estatísticas",
"API Key": "Chave API",
"Connected": "Ligado",
"Disconnected": "Desligado",
@@ -91,9 +91,7 @@
"Dark": "Escuro",
"Auto": "Automático",
"Endpoint": "Ponto final",
"Providers": "Fornecedores",
"Combos": "Combinações",
"Usage": "Estatísticas",
"Quota Tracker": "Rastreador de quota",
"MITM": "MITM",
"CLI Tools": "Ferramentas CLI",
@@ -150,7 +148,6 @@
"No Proxy": "Sem proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Nomes de host/domínios separados por vírgulas para contornar o proxy.",
"Test proxy URL": "Testar URL do proxy",
"Apply": "Aplicar",
"Proxy settings applied": "Definições de proxy aplicadas",
"Proxy enabled": "Proxy ativado",
"Proxy disabled": "Proxy desativado",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Utilize o Antigravity IDE e GitHub Copilot → com QUALQUER fornecedor/modelo do 9Router",
"How it works:": "Como funciona:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Pedido do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM interceta → 9Router → resposta para Antigravity/Copilot",
"API Key": "Chave API",
"No API keys — create one in Keys page": "Sem chaves de API — crie uma na página Chaves",
"sk_9router (default)": "sk_9router (predefinição)",
"Server started": "Servidor iniciado",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Palavra-passe Sudo necessária",
"Enter your sudo password to start/stop MITM server": "Introduza a sua palavra-passe sudo para iniciar/parar o servidor MITM",
"Sudo Password": "Palavra-passe sudo",
"Confirm": "Confirmar"
"Click to add, click again to remove. Changes are saved automatically.": "Clique para adicionar, clique novamente para remover. As alterações são guardadas automaticamente."
}

View File

@@ -3,7 +3,7 @@
"Delete": "Ștergere",
"Edit": "Editare",
"Save": "Salvare",
"Close": "Închidere",
"Close": "Închide",
"Add": "Adăugare",
"Remove": "Eliminare",
"Settings": "Setări",
@@ -12,7 +12,7 @@
"Logout": "Ieșire",
"Login": "Conectare",
"Providers": "Furnizori",
"Usage": "Utilizare",
"Usage": "Statistici de utilizare",
"API Key": "Cheie API",
"Connected": "Conectat",
"Disconnected": "Deconectat",
@@ -91,9 +91,7 @@
"Dark": "Întunecat",
"Auto": "Automat",
"Endpoint": "Punct final",
"Providers": "Furnizori",
"Combos": "Combinații",
"Usage": "Statistici de utilizare",
"Quota Tracker": "Urmăritor cote",
"MITM": "MITM",
"CLI Tools": "Instrumente",
@@ -150,7 +148,6 @@
"No Proxy": "Nicio delegare",
"Comma-separated hostnames/domains to bypass the proxy.": "Nume de gazdă/domenii separate prin virgulă pentru a ocoli proxy-ul.",
"Test proxy URL": "Testare URL proxy",
"Apply": "Aplicare",
"Proxy settings applied": "Setările proxy au fost aplicate",
"Proxy enabled": "Proxy activat",
"Proxy disabled": "Proxy dezactivat",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Folosiți Antigravity IDE & GitHub Copilot → cu ORICE furnizor/model din 9Router",
"How it works:": "Cum funcționează:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitare Antigravity/Copilot IDE → Redirecționare DNS la localhost:443 → Proxy MITM interceptează → 9Router → răspuns la Antigravity/Copilot",
"API Key": "Cheie API",
"No API keys — create one in Keys page": "Nicio cheie API — creați una în pagina Chei",
"sk_9router (default)": "sk_9router (implicit)",
"Server started": "Server pornit",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Parola Sudo este necesară",
"Enter your sudo password to start/stop MITM server": "Introduceți parola sudo pentru a porni/opri serverul MITM",
"Sudo Password": "Parola Sudo",
"Confirm": "Confirmare"
"Click to add, click again to remove. Changes are saved automatically.": "Faceți clic pentru a adăuga, faceți clic din nou pentru a elimina. Modificările sunt salvate automat."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Выход",
"Login": "Вход",
"Providers": "Провайдеры",
"Usage": "Использование",
"Usage": "Статистика",
"API Key": "Ключ API",
"Connected": "Подключено",
"Disconnected": "Отключено",
@@ -91,9 +91,7 @@
"Dark": "Темная",
"Auto": "Автоматически",
"Endpoint": "Конечная точка",
"Providers": "Провайдеры",
"Combos": "Комбинации",
"Usage": "Статистика",
"Quota Tracker": "Отслеживание квоты",
"MITM": "MITM",
"CLI Tools": "Инструменты CLI",
@@ -150,7 +148,6 @@
"No Proxy": "Без прокси",
"Comma-separated hostnames/domains to bypass the proxy.": "Разделенные запятыми имена хостов/домены для обхода прокси.",
"Test proxy URL": "Протестировать URL прокси",
"Apply": "Применить",
"Proxy settings applied": "Параметры прокси применены",
"Proxy enabled": "Прокси включен",
"Proxy disabled": "Прокси отключен",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Используйте Antigravity IDE и GitHub Copilot → с ЛЮБЫМ провайдером/моделью от 9Router",
"How it works:": "Как это работает:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Запрос Antigravity/Copilot IDE → Перенаправление DNS на localhost:443 → Прокси MITM перехватывает → 9Router → ответ для Antigravity/Copilot",
"API Key": "Ключ API",
"No API keys — create one in Keys page": "Нет ключей API — создайте один на странице ключей",
"sk_9router (default)": "sk_9router (по умолчанию)",
"Server started": "Сервер запущен",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Требуется пароль Sudo",
"Enter your sudo password to start/stop MITM server": "Введите пароль sudo для запуска/остановки сервера MITM",
"Sudo Password": "Пароль sudo",
"Confirm": "Подтвердить"
"Click to add, click again to remove. Changes are saved automatically.": "Нажмите, чтобы добавить, нажмите ещё раз, чтобы удалить. Изменения сохраняются автоматически."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Logga ut",
"Login": "Logga in",
"Providers": "Leverantörer",
"Usage": "Användning",
"Usage": "Användarstatistik",
"API Key": "API-nyckel",
"Connected": "Ansluten",
"Disconnected": "Frånkopplad",
@@ -91,9 +91,7 @@
"Dark": "Mörk",
"Auto": "Automatisk",
"Endpoint": "Slutpunkt",
"Providers": "Leverantörer",
"Combos": "Kombinationer",
"Usage": "Användarstatistik",
"Quota Tracker": "Kvotspårare",
"MITM": "MITM",
"CLI Tools": "Verktyg",
@@ -150,7 +148,6 @@
"No Proxy": "Ingen proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Kommaseparerade värdnamn/domäner för att kringgå proxyn.",
"Test proxy URL": "Testa proxy-URL",
"Apply": "Verkställ",
"Proxy settings applied": "Proxyinställningar tillämpade",
"Proxy enabled": "Proxy aktiverad",
"Proxy disabled": "Proxy inaktiverad",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Använd Antigravity IDE & GitHub Copilot → med VALFRI leverantör/modell från 9Router",
"How it works:": "Hur det fungerar:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-begäran → DNS-omdirigering till localhost:443 → MITM-proxy avlyssnar → 9Router → svar till Antigravity/Copilot",
"API Key": "API-nyckel",
"No API keys — create one in Keys page": "Inga API-nycklar — skapa en på nyckelsidan",
"sk_9router (default)": "sk_9router (standard)",
"Server started": "Servern startad",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo-lösenord krävs",
"Enter your sudo password to start/stop MITM server": "Ange ditt sudo-lösenord för att starta/stoppa MITM-servern",
"Sudo Password": "Sudo-lösenord",
"Confirm": "Bekräfta"
"Click to add, click again to remove. Changes are saved automatically.": "Klicka för att lägga till, klicka igen för att ta bort. Ändringar sparas automatiskt."
}

View File

@@ -12,7 +12,7 @@
"Logout": "ออกจากระบบ",
"Login": "เข้าสู่ระบบ",
"Providers": "ผู้ให้บริการ",
"Usage": "การใช้งาน",
"Usage": "สถิติการใช้งาน",
"API Key": "คีย์ API",
"Connected": "เชื่อมต่อแล้ว",
"Disconnected": "ตัดการเชื่อมต่อ",
@@ -91,9 +91,7 @@
"Dark": "มืด",
"Auto": "อัตโนมัติ",
"Endpoint": "จุดสิ้นสุด",
"Providers": "ผู้ให้บริการ",
"Combos": "ชุดรวม",
"Usage": "สถิติการใช้งาน",
"Quota Tracker": "ตัวติดตามโควต้า",
"MITM": "MITM",
"CLI Tools": "เครื่องมือ",
@@ -150,7 +148,6 @@
"No Proxy": "ไม่มี Proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "ชื่อโฮสต์/โดเมนคั่นด้วยเครื่องหมายจุลภาค เพื่อข้าม proxy",
"Test proxy URL": "ทดสอบ URL Proxy",
"Apply": "ใช้",
"Proxy settings applied": "ใช้การตั้งค่า proxy แล้ว",
"Proxy enabled": "เปิดใช้งาน proxy",
"Proxy disabled": "ปิดใช้งาน proxy",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "ใช้ Antigravity IDE & GitHub Copilot → ที่มีผู้ให้บริการ/โมเดลใด ๆ จาก 9Router",
"How it works:": "วิธีการทำงาน:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "คำขอ Antigravity/Copilot IDE → เปลี่ยนเส้นทาง DNS เป็น localhost:443 → MITM proxy สกัดปะท่อ → 9Router → ตอบสนอง Antigravity/Copilot",
"API Key": "คีย์ API",
"No API keys — create one in Keys page": "ไม่มีคีย์ API — สร้างคีย์ในหน้า Keys",
"sk_9router (default)": "sk_9router (ค่าเริ่มต้น)",
"Server started": "เซิร์ฟเวอร์เริ่มต้นแล้ว",
@@ -192,5 +188,5 @@
"Sudo Password Required": "ต้องการรหัสผ่าน Sudo",
"Enter your sudo password to start/stop MITM server": "ป้อนรหัสผ่าน sudo ของคุณเพื่อเริ่ม/หยุดเซิร์ฟเวอร์ MITM",
"Sudo Password": "รหัสผ่าน Sudo",
"Confirm": "ยืนยัน"
"Click to add, click again to remove. Changes are saved automatically.": "คลิกเพื่อเพิ่ม คลิกอีกครั้งเพื่อลบ การเปลี่ยนแปลงจะถูกบันทึกโดยอัตโนมัติ"
}

View File

@@ -12,7 +12,7 @@
"Logout": "Maglog out",
"Login": "Magsimula ng sesyon",
"Providers": "Mga Provider",
"Usage": "Paggamit",
"Usage": "Mga Istatistika ng Paggamit",
"API Key": "Susi ng API",
"Connected": "Konektado",
"Disconnected": "Hindi Konektado",
@@ -91,9 +91,7 @@
"Dark": "Madilim",
"Auto": "Awtomatiko",
"Endpoint": "Endpoint",
"Providers": "Mga Provider",
"Combos": "Mga Combo",
"Usage": "Mga Istatistika ng Paggamit",
"Quota Tracker": "Quota Tracker",
"MITM": "MITM",
"CLI Tools": "Mga Tool",
@@ -150,7 +148,6 @@
"No Proxy": "Walang Proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Mga hostname/domain na pinagseparang komma upang lampasan ang proxy.",
"Test proxy URL": "Subukan ang Proxy URL",
"Apply": "Ilapat",
"Proxy settings applied": "Ang mga setting ng proxy ay inilapat",
"Proxy enabled": "Ang proxy ay pinagana",
"Proxy disabled": "Ang proxy ay hindi pinagana",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Gamitin ang Antigravity IDE & GitHub Copilot → sa ANUMANG provider/model mula sa 9Router",
"How it works:": "Paano ito gumagana:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE request → DNS redirect sa localhost:443 → MITM proxy intercepts → 9Router → response sa Antigravity/Copilot",
"API Key": "Susi ng API",
"No API keys — create one in Keys page": "Walang API keys — lumikha ng isa sa Keys page",
"sk_9router (default)": "sk_9router (default)",
"Server started": "Ang server ay nagsimula",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Kailangan ng Sudo Password",
"Enter your sudo password to start/stop MITM server": "Ipasok ang iyong sudo password upang simulan/ihinto ang MITM server",
"Sudo Password": "Sudo Password",
"Confirm": "Kumpirmahin"
"Click to add, click again to remove. Changes are saved automatically.": "I-click para idagdag, i-click muli para alisin. Ang mga pagbabago ay awtomatikong nase-save."
}

View File

@@ -12,7 +12,7 @@
"Logout": ıkış Yap",
"Login": "Giriş Yap",
"Providers": "Sağlayıcılar",
"Usage": "Kullanım",
"Usage": "Kullanım İstatistikleri",
"API Key": "API Anahtarı",
"Connected": "Bağlı",
"Disconnected": "Bağlantısı Kesildi",
@@ -91,9 +91,7 @@
"Dark": "Koyu",
"Auto": "Otomatik",
"Endpoint": "Uç Nokta",
"Providers": "Sağlayıcılar",
"Combos": "Kombinasyonlar",
"Usage": "Kullanım İstatistikleri",
"Quota Tracker": "Kota İzleyici",
"MITM": "MITM",
"CLI Tools": "Araçlar",
@@ -150,7 +148,6 @@
"No Proxy": "Proxy Yok",
"Comma-separated hostnames/domains to bypass the proxy.": "Proxy'yi atlamak için virgülle ayrılmış ana bilgisayar adları/etki alanları.",
"Test proxy URL": "Test Proxy URL'si",
"Apply": "Uygula",
"Proxy settings applied": "Proxy ayarları uygulandı",
"Proxy enabled": "Proxy etkinleştirildi",
"Proxy disabled": "Proxy devre dışı bırakıldı",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE & GitHub Copilot kullanın → 9Router'dan HERHANGİ bir sağlayıcı/model ile",
"How it works:": "Nasıl çalışır:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE isteği → DNS'i localhost:443'e yönlendir → MITM proxy yakalar → 9Router → Antigravity/Copilot'a yanıt",
"API Key": "API Anahtarı",
"No API keys — create one in Keys page": "API anahtarı yok — Keys sayfasında bir tane oluşturun",
"sk_9router (default)": "sk_9router (varsayılan)",
"Server started": "Sunucu başlatıldı",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo Parolası Gerekli",
"Enter your sudo password to start/stop MITM server": "MITM sunucusunu başlatmak/durdurmak için sudo parolanızı girin",
"Sudo Password": "Sudo Parolası",
"Confirm": "Onayla"
"Click to add, click again to remove. Changes are saved automatically.": "Eklemek için tıklayın, kaldırmak için tekrar tıklayın. Değişiklikler otomatik olarak kaydedilir."
}

View File

@@ -12,7 +12,7 @@
"Logout": "Вийти",
"Login": "Увійти",
"Providers": "Постачальники",
"Usage": "Використання",
"Usage": "Статистика використання",
"API Key": "Ключ API",
"Connected": "Підключено",
"Disconnected": "Відключено",
@@ -91,9 +91,7 @@
"Dark": "Темна",
"Auto": "Авто",
"Endpoint": "Кінцева точка",
"Providers": "Постачальники",
"Combos": "Комбо",
"Usage": "Статистика використання",
"Quota Tracker": "Відстеження квоти",
"MITM": "MITM",
"CLI Tools": "Інструменти",
@@ -150,7 +148,6 @@
"No Proxy": "Без проксі",
"Comma-separated hostnames/domains to bypass the proxy.": "Розділені комами імена хостів/домени для обходу проксі.",
"Test proxy URL": "Протестувати URL проксі",
"Apply": "Застосувати",
"Proxy settings applied": "Параметри проксі застосовані",
"Proxy enabled": "Проксі увімкнено",
"Proxy disabled": "Проксі вимкнено",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Використовуйте Antigravity IDE & GitHub Copilot → з БУДЬ-ЯКИМ постачальником/моделлю від 9Router",
"How it works:": "Як це працює:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Запит Antigravity/Copilot IDE → Перенаправлення DNS на localhost:443 → MITM проксі перехопити → 9Router → відповідь на Antigravity/Copilot",
"API Key": "Ключ API",
"No API keys — create one in Keys page": "Немає ключів API — створіть один на сторінці ключів",
"sk_9router (default)": "sk_9router (за замовчуванням)",
"Server started": "Сервер запущено",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Потрібен пароль Sudo",
"Enter your sudo password to start/stop MITM server": "Введіть пароль sudo для запуску/зупинення MITM сервера",
"Sudo Password": "Пароль Sudo",
"Confirm": "Підтвердити"
"Click to add, click again to remove. Changes are saved automatically.": "Натисніть, щоб додати, натисніть ще раз, щоб видалити. Зміни зберігаються автоматично."
}

View File

@@ -12,7 +12,7 @@
"Logout": "لاگ آؤٹ",
"Login": "لاگ ان",
"Providers": "فراہم کنندگان",
"Usage": "استعمال",
"Usage": "استعمال کے اعدادوشمار",
"API Key": "API کلید",
"Connected": "منسلک",
"Disconnected": "منقطع",
@@ -91,9 +91,7 @@
"Dark": "تاریک",
"Auto": "خودکار",
"Endpoint": "اختتام نقطہ",
"Providers": "فراہم کنندگان",
"Combos": "امتزاجات",
"Usage": "استعمال کے اعدادوشمار",
"Quota Tracker": "کوٹہ ٹریکر",
"MITM": "MITM",
"CLI Tools": "آلات",
@@ -150,7 +148,6 @@
"No Proxy": "کوئی پروکسی نہیں",
"Comma-separated hostnames/domains to bypass the proxy.": "پروکسی کو نظر انداز کرنے کے لیے کوما سے الگ شدہ ہوسٹ ناموں/ڈومین۔",
"Test proxy URL": "پروکسی URL کو ٹیسٹ کریں",
"Apply": "لاگو کریں",
"Proxy settings applied": "پروکسی ترتیبات لاگو کی گئیں",
"Proxy enabled": "پروکسی فعال",
"Proxy disabled": "پروکسی غیر فعال",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE اور GitHub Copilot استعمال کریں → 9Router سے کسی بھی فراہم کنندہ/ماڈل کے ساتھ",
"How it works:": "یہ کیسے کام کرتا ہے:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE درخواست → DNS کو localhost:443 کی طرف ری ڈائریکٹ کریں → MITM پروکسی روکے → 9Router → Antigravity/Copilot کو جواب",
"API Key": "API کلید",
"No API keys — create one in Keys page": "کوئی API کلید نہیں — Keys صفحہ میں ایک بنائیں",
"sk_9router (default)": "sk_9router (ڈیفالٹ)",
"Server started": "سرور شروع ہوگیا",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Sudo پاس ورڈ درکار ہے",
"Enter your sudo password to start/stop MITM server": "MITM سرور شروع/بند کرنے کے لیے اپنا sudo پاس ورڈ داخل کریں",
"Sudo Password": "Sudo پاس ورڈ",
"Confirm": "تصدیق کریں"
"Click to add, click again to remove. Changes are saved automatically.": "شامل کرنے کے لیے کلک کریں، ہٹانے کے لیے دوبارہ کلک کریں۔ تبدیلیاں خودکار طور پر محفوظ ہو جاتی ہیں۔"
}

View File

@@ -12,7 +12,7 @@
"Logout": "Đăng xuất",
"Login": "Đăng nhập",
"Providers": "Nhà cung cấp",
"Usage": "Sử dụng",
"Usage": "Thống kê",
"API Key": "Khóa API",
"Connected": " Đã kết nối",
"Disconnected": "Chưa kết nối",
@@ -91,9 +91,7 @@
"Dark": "Tối",
"Auto": "Tự động",
"Endpoint": "Điểm cuối",
"Providers": "Nhà cung cấp",
"Combos": "Kết hợp",
"Usage": "Thống kê",
"Quota Tracker": "Theo dõi hạn mức",
"MITM": "MITM",
"CLI Tools": "Công cụ",
@@ -150,7 +148,6 @@
"No Proxy": "Không có Proxy",
"Comma-separated hostnames/domains to bypass the proxy.": "Tên máy chủ/tên miền được phân tách bằng dấu phẩy để bỏ qua proxy.",
"Test proxy URL": "Kiểm tra URL proxy",
"Apply": "Áp dụng",
"Proxy settings applied": "Đã áp dụng cài đặt proxy",
"Proxy enabled": "Đã bật proxy",
"Proxy disabled": "Đã tắt proxy",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Sử dụng Antigravity IDE & GitHub Copilot → với BẤT KỲ nhà cung cấp/mô hình nào từ 9Router",
"How it works:": "Cách hoạt động:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Yêu cầu Antigravity/Copilot IDE → Chuyển hướng DNS đến localhost:443 → MITM proxy chặn → 9Router → phản hồi đến Antigravity/Copilot",
"API Key": "Khóa API",
"No API keys — create one in Keys page": "Không có khóa API — tạo một khóa trong trang Keys",
"sk_9router (default)": "sk_9router (mặc định)",
"Server started": "Đã khởi động máy chủ",
@@ -192,5 +188,5 @@
"Sudo Password Required": "Yêu cầu mật khẩu Sudo",
"Enter your sudo password to start/stop MITM server": "Nhập mật khẩu sudo của bạn để khởi động/dừng máy chủ MITM",
"Sudo Password": "Mật khẩu Sudo",
"Confirm": "Xác nhận"
"Click to add, click again to remove. Changes are saved automatically.": "Nhấp để thêm, nhấp lại để xóa. Thay đổi được lưu tự động."
}

View File

@@ -512,13 +512,11 @@
"The proxy server has been stopped.": "代理服务器已停止。",
"Reload Page": "重新加载页面",
"Service is running in terminal. You can close this web page. Shutdown will stop the service.": "服务正在终端中运行。您可以关闭此网页。关闭将停止服务。",
"One Endpoint for": "统一端点,接入",
"All AI Providers": "所有 AI 提供商",
"Route AI requests through subscription, cheap, and free tiers with auto-fallback. One endpoint for Claude, GPT, Gemini, and more.": "通过订阅、低价和免费层级路由 AI 请求并自动回退。一个端点接入 Claude、GPT、Gemini 等。",
"Get Started": "开始使用",
"View on GitHub": "在 GitHub 上查看",
"How 9Router Works": "9Router 工作原理",
"Data flows seamlessly through our intelligent routing system": "数据通过我们的智能路由系统无缝流转",
"1. CLI & SDKs": "1. CLI 和 SDK",
@@ -527,7 +525,6 @@
"Our engine analyzes the prompt and routes through your subscription, cheap, and free provider tiers with automatic fallback.": "我们的引擎分析提示词并通过您的订阅、低价和免费提供商层级路由,自动回退。",
"3. AI Providers": "3. AI 提供商",
"The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.": "请求由 OpenAI、Anthropic、Gemini 或其他提供商即时响应。",
"Powerful Features": "强大功能",
"Everything you need to manage your AI infrastructure efficiently.": "高效管理 AI 基础设施所需的一切。",
"Unified Endpoint": "统一端点",
@@ -546,7 +543,6 @@
"Native CLI tool support for Cursor, Claude, Copilot, and more.": "原生支持 Cursor、Claude、Copilot 等 CLI 工具。",
"Dashboard": "仪表盘",
"Beautiful web dashboard for managing providers and monitoring usage.": "精美的 Web 仪表盘,用于管理提供商和监控使用情况。",
"Get Started in 30 Seconds": "30 秒快速上手",
"Install 9Router": "安装 9Router",
"Open Dashboard": "打开仪表盘",
@@ -554,13 +550,10 @@
"npm install -g 9router": "npm install -g 9router",
"open http://localhost:9099": "open http://localhost:9099",
"Ready! Requests route automatically through your configured providers.": "就绪!请求将自动通过您配置的提供商路由。",
"How it Works": "工作原理",
"Docs": "文档",
"GitHub": "GitHub",
"Legal": "法律",
"Manage your AI provider connections": "管理您的 AI 提供商连接",
"Model combos with fallback": "模型组合及回退",
"Monitor your API usage, token consumption, and request logs": "监控您的 API 使用量、Token 消耗和请求日志",
@@ -575,15 +568,12 @@
"MITM Proxy": "MITM 代理",
"Translator": "翻译器",
"Media Providers": "媒体提供商",
"Theme": "主题",
"Remote": "远程",
"Logout": "退出登录",
"Change Log": "更新日志",
"Proxy Pools": "代理池",
"MITM": "MITM",
"Loading...": "加载中...",
"Enter your password to access the dashboard": "输入密码以访问仪表盘",
"Password": "密码",
@@ -592,7 +582,6 @@
"Default password is 123456": "默认密码为 123456",
"Invalid password": "密码错误",
"An error occurred. Please try again.": "发生错误,请重试。",
"light": "浅色",
"dark": "深色",
"system": "跟随系统",
@@ -602,11 +591,9 @@
"Record request details for inspection in the logs view": "记录请求详情以在日志视图中查看",
"Update Password": "修改密码",
"Set Password": "设置密码",
"Overview": "概览",
"Details": "详情",
"Search...": "搜索...",
"Saving...": "保存中...",
"Save": "保存",
"Save Changes": "保存更改",
@@ -615,27 +602,22 @@
"Import": "导入",
"Deploying... (may take ~1 min)": "部署中...(可能需要约 1 分钟)",
"Deploy": "部署",
"Enable": "启用",
"Disable": "禁用",
"Token Saver": "Token 节省器",
"Experimental": "实验性",
"Compress tool output to reduce token usage.": "压缩工具输出以减少 Token 使用量。",
"sk_9router (default)": "sk_9router默认",
"Install Tailscale": "安装 Tailscale",
"Installing Tailscale...": "正在安装 Tailscale...",
"Tailscale installed": "Tailscale 已安装",
"Tailscale Funnel": "Tailscale Funnel",
"Allow dashboard access via tunnel": "允许通过隧道访问仪表盘",
"Disconnected from server": "与服务器断开连接",
"Attempting to reconnect...": "正在尝试重新连接...",
"Click to retry": "点击重试",
"Failed to load changelog:": "加载更新日志失败:",
"Copied!": "已复制!",
"Manage reusable per-connection proxies and bind them to provider connections.": "管理可复用的连接代理并绑定到提供商连接。",
"Vercel Relay": "Vercel Relay",
"Batch Import": "批量导入",
@@ -665,7 +647,6 @@
"Proxy pool deleted": "代理池已删除",
"Proxy test passed": "代理测试通过",
"Proxy test failed": "代理测试失败",
"Replay request flow — matches log files": "重放请求流程——匹配日志文件",
"Client Request": "客户端请求",
"Source Body": "源请求体",
@@ -678,7 +659,6 @@
"Send": "发送",
"→ OpenAI": "→ OpenAI",
"→ Target": "→ 目标",
"Terminal": "终端",
"Full shell access": "完整 Shell 访问",
"Desktop": "桌面",
@@ -690,7 +670,6 @@
"Works on any device": "适用于任何设备",
"Access your terminal, desktop & files from anywhere": "从任何地方访问您的终端、桌面和文件",
"Get 9Remote": "获取 9Remote",
"Manual configuration is still available if 9router is deployed on a remote server.": "如果 9router 部署在远程服务器上,仍可使用手动配置。",
"How to Install": "如何安装",
"Hide": "隐藏",
@@ -714,9 +693,7 @@
"Trust Cert": "信任证书",
"Trusted": "已信任",
"not detected locally": "未在本地检测到",
"Select to pre-fill, then edit model ID in the input": "选择以预填充,然后在输入框中编辑模型 ID",
"Free & Free Tier Providers": "免费及免费额度提供商",
"Testing...": "测试中...",
"Test All": "全部测试",
@@ -740,13 +717,11 @@
"Model ID (optional)": "模型 ID可选",
"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead.": "如果提供商不支持 /models 端点,请输入模型 ID 通过 chat/completions 进行验证。",
"(via inference test)": "(通过推理测试)",
"Delete this combo?": "删除此组合?",
"Name is required": "名称为必填项",
"Failed to create combo": "创建组合失败",
"Failed to update combo": "更新组合失败",
"Only letters, numbers, -, _ and . allowed": "仅允许使用字母、数字、-、_ 和 .",
"Input Cost": "输入成本",
"Output Cost": "输出成本",
"Total Cost": "总成本",
@@ -755,18 +730,15 @@
"Just now": "刚刚",
"m ago": "分钟前",
"h ago": "小时前",
"None": "无",
"disabled": "已禁用",
"OAuth Account": "OAuth 账号",
"no_proxy:": "无代理:",
"Pool:": "代理池:",
"Legacy:": "旧版:",
"Error": "错误",
"more": "更多",
"Proxy": "代理",
"No authentication required": "无需身份验证",
"This provider is ready to use.": "此提供商已准备就绪。",
"Available Models": "可用模型",
@@ -788,5 +760,7 @@
"connections": "个连接",
"Suggested free models (≥200k context):": "推荐的免费模型≥200k 上下文):",
"Get API Key →": "获取 API 密钥 →",
"OAuth": "OAuth"
"OAuth": "OAuth",
"Click to add, click again to remove. Changes are saved automatically.": "点击添加,再次点击删除。更改将自动保存。",
"Close": "关闭"
}

View File

@@ -12,7 +12,7 @@
"Logout": "登出",
"Login": "登錄",
"Providers": "提供者",
"Usage": "使用情況",
"Usage": "統計",
"API Key": "API 金鑰",
"Connected": "已連接",
"Disconnected": "未連接",
@@ -91,9 +91,7 @@
"Dark": "深色",
"Auto": "自動",
"Endpoint": "端點",
"Providers": "提供者",
"Combos": "組合",
"Usage": "統計",
"Quota Tracker": "配額跟蹤",
"MITM": "MITM",
"CLI Tools": "CLI 工具",
@@ -150,7 +148,6 @@
"No Proxy": "無代理",
"Comma-separated hostnames/domains to bypass the proxy.": "逗號分隔的主機名/域以繞過代理。",
"Test proxy URL": "測試代理 URL",
"Apply": "應用",
"Proxy settings applied": "已應用代理設置",
"Proxy enabled": "已啟用代理",
"Proxy disabled": "已禁用代理",
@@ -178,7 +175,6 @@
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "使用 Antigravity IDE 和 GitHub Copilot → 與 9Router 中的任何提供者/模型一起",
"How it works:": "工作原理:",
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE 請求 → DNS 重定向到 localhost:443 → MITM 代理攔截 → 9Router → 响應到 Antigravity/Copilot",
"API Key": "API 金鑰",
"No API keys — create one in Keys page": "沒有 API 金鑰 — 在金鑰頁面中創建一個",
"sk_9router (default)": "sk_9router默認",
"Server started": "服務器已啟動",
@@ -192,5 +188,5 @@
"Sudo Password Required": "需要 Sudo 密碼",
"Enter your sudo password to start/stop MITM server": "輸入您的 Sudo 密碼以啟動/停止 MITM 服務器",
"Sudo Password": "Sudo 密碼",
"Confirm": "確認"
"Click to add, click again to remove. Changes are saved automatically.": "點擊新增,再次點擊移除。變更將自動儲存。"
}

View File

@@ -1,6 +1,6 @@
"use client";
import { useState, useEffect } from "react";
import { useState, useEffect, useRef } from "react";
import { Card, Button, ModelSelectModal, ManualConfigModal } from "@/shared/components";
import Image from "next/image";
import BaseUrlSelect from "./BaseUrlSelect";
@@ -19,6 +19,11 @@ export default function CopilotToolCard({ tool, isExpanded, onToggle, baseUrl, a
const [showManualConfigModal, setShowManualConfigModal] = useState(false);
const [selectedModels, setSelectedModels] = useState([]);
const [modalOpen, setModalOpen] = useState(false);
const selectedModelsRef = useRef([]);
useEffect(() => {
selectedModelsRef.current = selectedModels;
}, [selectedModels]);
useEffect(() => {
if (apiKeys?.length > 0 && !selectedApiKey) {
@@ -58,6 +63,21 @@ export default function CopilotToolCard({ tool, isExpanded, onToggle, baseUrl, a
}
};
const saveModels = async (models) => {
try {
const keyToUse = (selectedApiKey && selectedApiKey.trim())
? selectedApiKey
: (!cloudEnabled ? "sk_9router" : selectedApiKey);
await fetch("/api/cli-tools/copilot-settings", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ baseUrl: getEffectiveBaseUrl(), apiKey: keyToUse, models }),
});
} catch (error) {
console.log("Error saving models:", error);
}
};
const getConfigStatus = () => {
if (!status) return null;
if (!status.has9Router) return "not_configured";
@@ -272,16 +292,23 @@ export default function CopilotToolCard({ tool, isExpanded, onToggle, baseUrl, a
<ModelSelectModal
isOpen={modalOpen}
onClose={() => setModalOpen(false)}
onClose={() => {
setModalOpen(false);
saveModels(selectedModelsRef.current);
}}
onSelect={(model) => {
if (!selectedModels.includes(model.value)) {
setSelectedModels([...selectedModels, model.value]);
}
setModalOpen(false);
}}
onDeselect={(model) => {
setSelectedModels(selectedModels.filter(m => m !== model.value));
}}
selectedModel={null}
activeProviders={activeProviders}
modelAliases={modelAliases}
addedModelValues={selectedModels}
closeOnSelect={false}
title="Add Model for GitHub Copilot"
/>

View File

@@ -1,6 +1,6 @@
"use client";
import { useState, useEffect } from "react";
import { useState, useEffect, useRef } from "react";
import { Card, Button, ModelSelectModal, ManualConfigModal } from "@/shared/components";
import Image from "next/image";
import BaseUrlSelect from "./BaseUrlSelect";
@@ -24,6 +24,11 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
const [customBaseUrl, setCustomBaseUrl] = useState("");
const [selectedModels, setSelectedModels] = useState([]);
const [activeModel, setActiveModel] = useState("");
const selectedModelsRef = useRef([]);
useEffect(() => {
selectedModelsRef.current = selectedModels;
}, [selectedModels]);
useEffect(() => {
if (apiKeys?.length > 0 && !selectedApiKey) {
@@ -68,6 +73,28 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
}
};
const saveModels = async (models) => {
try {
const keyToUse = (selectedApiKey && selectedApiKey.trim())
? selectedApiKey
: (!cloudEnabled ? "sk_9router" : selectedApiKey);
const validActiveModel = models.includes(activeModel) ? activeModel : (models[0] || "");
await fetch("/api/cli-tools/opencode-settings", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
baseUrl: getEffectiveBaseUrl(),
apiKey: keyToUse,
models,
activeModel: validActiveModel,
subagentModel,
}),
});
} catch (error) {
console.log("Error saving models:", error);
}
};
const getConfigStatus = () => {
if (!status?.installed) return null;
if (!status.config) return "not_configured";
@@ -427,17 +454,28 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
<ModelSelectModal
isOpen={modalOpen}
onClose={() => setModalOpen(false)}
onClose={() => {
setModalOpen(false);
saveModels(selectedModelsRef.current);
}}
onSelect={(model) => {
if (!selectedModels.includes(model.value)) {
setSelectedModels([...selectedModels, model.value]);
if (!activeModel) setActiveModel(model.value);
}
setModalOpen(false);
}}
onDeselect={(model) => {
const remaining = selectedModels.filter(m => m !== model.value);
setSelectedModels(remaining);
if (activeModel === model.value) {
setActiveModel(remaining[0] || "");
}
}}
selectedModel={null}
activeProviders={activeProviders}
modelAliases={modelAliases}
addedModelValues={selectedModels}
closeOnSelect={false}
title="Add Model for OpenCode"
/>

View File

@@ -3,6 +3,7 @@
import { useEffect } from "react";
import { cn } from "@/shared/utils/cn";
import Button from "./Button";
import Tooltip from "./Tooltip";
export default function Modal({
isOpen,
@@ -12,7 +13,6 @@ export default function Modal({
footer,
size = "md",
closeOnOverlay = true,
showCloseButton = true,
showTrafficLights = true,
className,
}) {
@@ -63,28 +63,38 @@ export default function Modal({
)}
>
{/* Header */}
{(title || showCloseButton) && (
{(title || showTrafficLights) && (
<div className="flex items-center justify-between p-2 border-b border-border-subtle">
<div className="flex items-center">
{/* Traffic lights — desktop only */}
{showTrafficLights && (
<div className="flex items-center gap-2 mr-4 ml-2">
<div className="w-3 h-3 rounded-full bg-[#FF5F56]" />
<div className="w-3 h-3 rounded-full bg-[#FFBD2E]" />
<div className="w-3 h-3 rounded-full bg-[#27C93F]" />
<div className="hidden md:flex items-center gap-2 mr-4 ml-2">
<Tooltip text="Close" position="top" color="#FF5F56">
<button
onClick={onClose}
aria-label="Close"
title="Close"
className="w-4 h-4 rounded-full bg-[#FF5F56] hover:brightness-90 transition-all cursor-pointer flex items-center justify-center group/dot"
>
<span className="text-[9px] font-bold text-white opacity-0 group-hover/dot:opacity-100 transition-opacity leading-none"></span>
</button>
</Tooltip>
<div className="w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed" />
<div className="w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed" />
</div>
)}
{title && (
<h2 className="text-lg font-semibold text-text-main">{title}</h2>
)}
</div>
{showCloseButton && (
<button
onClick={onClose}
className="p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors"
>
<span className="material-symbols-outlined text-[20px]">close</span>
</button>
)}
{/* X button — mobile only */}
<button
onClick={onClose}
aria-label="Close"
className="md:hidden p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors"
>
<span className="material-symbols-outlined text-[20px]">close</span>
</button>
</div>
)}

View File

@@ -3,7 +3,7 @@
import { useState, useMemo, useEffect } from "react";
import PropTypes from "prop-types";
import Modal from "./Modal";
import Button from "./Button";
import ProviderIcon from "./ProviderIcon";
import { getModelsByProviderId } from "@/shared/constants/models";
import { OAUTH_PROVIDERS, APIKEY_PROVIDERS, FREE_PROVIDERS, FREE_TIER_PROVIDERS, AI_PROVIDERS, isOpenAICompatibleProvider, isAnthropicCompatibleProvider, getProviderAlias } from "@/shared/constants/providers";
@@ -318,32 +318,37 @@ export default function ModelSelectModal({
return combos.filter(c => c.name.toLowerCase().includes(query));
}, [combos, searchQuery, kindFilter]);
// Sort models alphabetically, with added models floated to top
const sortModels = (models) => {
const added = models.filter(m => addedModelValues.includes(m.value)).sort((a, b) => a.name.localeCompare(b.name));
const rest = models.filter(m => !addedModelValues.includes(m.value)).sort((a, b) => a.name.localeCompare(b.name));
return [...added, ...rest];
};
// Filter models by search query
const filteredGroups = useMemo(() => {
if (!searchQuery.trim()) return groupedModels;
const query = searchQuery.trim().toLowerCase();
const query = searchQuery.toLowerCase();
const filtered = {};
Object.entries(groupedModels).forEach(([providerId, group]) => {
const matchedModels = group.models.filter(
(m) =>
m.name.toLowerCase().includes(query) ||
m.id.toLowerCase().includes(query)
);
const providerNameMatches = group.name.toLowerCase().includes(query);
if (matchedModels.length > 0 || providerNameMatches) {
filtered[providerId] = {
...group,
models: matchedModels,
};
let models = group.models;
if (query) {
const providerNameMatches = group.name.toLowerCase().includes(query);
models = models.filter(
(m) =>
m.name.toLowerCase().includes(query) ||
m.id.toLowerCase().includes(query)
);
if (models.length === 0 && !providerNameMatches) return;
}
filtered[providerId] = {
...group,
models: sortModels(models),
};
});
return filtered;
}, [groupedModels, searchQuery]);
}, [groupedModels, searchQuery, addedModelValues]);
const handleSelect = (model) => {
const value = model?.value || model?.name || model;
@@ -371,20 +376,14 @@ export default function ModelSelectModal({
title={title}
size="md"
className="p-4!"
footer={
!closeOnSelect ? (
<Button
onClick={() => {
onClose();
setSearchQuery("");
}}
fullWidth
>
Done
</Button>
) : null
}
footer={null}
>
{/* Info bar */}
<div className="flex items-center gap-2 mb-3 px-2.5 py-2 bg-primary/8 border border-primary/20 rounded-lg text-xs text-text-muted">
<span className="material-symbols-outlined text-primary shrink-0" style={{ fontSize: "14px" }}>info</span>
<span>Click to add, click again to remove. Changes are saved automatically.</span>
</div>
{/* Search - compact */}
<div className="mb-3">
<div className="relative">
@@ -423,13 +422,13 @@ export default function ModelSelectModal({
${isSelected
? "bg-primary text-white border-primary"
: addedModelValues.includes(combo.name)
? "bg-green-500/10 border-green-500/30 text-green-700 dark:text-green-400 hover:border-green-500/50"
? "bg-primary border-primary text-white hover:bg-primary-hover"
: "bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"
}
`}
>
{addedModelValues.includes(combo.name) && (
<span className="material-symbols-outlined text-[12px]">check_circle</span>
<span className="material-symbols-outlined leading-none" style={{ fontSize: "10px" }}>check</span>
)}
{combo.name}
</button>
@@ -444,9 +443,12 @@ export default function ModelSelectModal({
<div key={providerId}>
{/* Provider header */}
<div className="flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5">
<div
className="w-2 h-2 rounded-full"
style={{ backgroundColor: group.color }}
<ProviderIcon
src={`/providers/${providerId}.png`}
alt={group.name}
size={14}
fallbackText={(group.name || providerId).slice(0, 2).toUpperCase()}
fallbackColor={group.color}
/>
<span className="text-xs font-medium text-primary">
{group.name}
@@ -472,14 +474,14 @@ export default function ModelSelectModal({
: isSelected
? "bg-primary text-white border-primary"
: addedModelValues.includes(model.value)
? "bg-green-500/10 border-green-500/30 text-green-700 dark:text-green-400 hover:border-green-500/50"
? "bg-primary border-primary text-white hover:bg-primary-hover"
: "bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"
}
`}
>
<span className="flex items-center gap-1">
{addedModelValues.includes(model.value) && !isPlaceholder && (
<span className="material-symbols-outlined text-[12px]">check_circle</span>
<span className="material-symbols-outlined leading-none" style={{ fontSize: "10px" }}>check</span>
)}
{isPlaceholder ? (
<>

View File

@@ -1,6 +1,6 @@
"use client";
export default function Tooltip({ text, children, position = "top" }) {
export default function Tooltip({ text, children, position = "top", color }) {
const posClass = {
top: "bottom-full left-1/2 -translate-x-1/2 mb-1.5",
bottom: "top-full left-1/2 -translate-x-1/2 mt-1.5",
@@ -8,10 +8,16 @@ export default function Tooltip({ text, children, position = "top" }) {
right: "left-full top-1/2 -translate-y-1/2 ml-1.5",
}[position];
const bgStyle = color ? { backgroundColor: color } : {};
const bgClass = color ? "" : "bg-gray-900";
return (
<div className="relative inline-flex group">
{children}
<div className={`pointer-events-none absolute ${posClass} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug bg-gray-900 text-white opacity-0 group-hover:opacity-100 transition-opacity duration-150 whitespace-normal`}>
<div
className={`pointer-events-none absolute ${posClass} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug ${bgClass} text-white opacity-0 group-hover:opacity-100 transition-opacity duration-150 whitespace-normal`}
style={bgStyle}
>
{text}
</div>
</div>