mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-22 13:38:31 +00:00
* 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
193 lines
9.1 KiB
JSON
193 lines
9.1 KiB
JSON
{
|
|
"Cancel": "Peruuta",
|
|
"Delete": "Poista",
|
|
"Edit": "Muokkaa",
|
|
"Save": "Tallenna",
|
|
"Close": "Sulje",
|
|
"Add": "Lisää",
|
|
"Remove": "Poista",
|
|
"Settings": "Asetukset",
|
|
"Profile": "Profiili",
|
|
"Dashboard": "Kojelauta",
|
|
"Logout": "Kirjaudu ulos",
|
|
"Login": "Kirjaudu sisään",
|
|
"Providers": "Palveluntarjoajat",
|
|
"Usage": "Käyttötilastot",
|
|
"API Key": "API-avain",
|
|
"Connected": "Yhdistetty",
|
|
"Disconnected": "Yhteys katkaistu",
|
|
"Active": "Aktiivinen",
|
|
"Inactive": "Passiivinen",
|
|
"Success": "Onnistui",
|
|
"Failed": "Epäonnistui",
|
|
"Error": "Virhe",
|
|
"Warning": "Varoitus",
|
|
"Info": "Tiedot",
|
|
"Loading": "Ladataan",
|
|
"Search": "Hae",
|
|
"Filter": "Suodin",
|
|
"Sort": "Lajittele",
|
|
"Export": "Vie",
|
|
"Import": "Tuo",
|
|
"Refresh": "Päivitä",
|
|
"Back": "Takaisin",
|
|
"Next": "Seuraava",
|
|
"Previous": "Edellinen",
|
|
"Submit": "Lähetä",
|
|
"Confirm": "Vahvista",
|
|
"Yes": "Kyllä",
|
|
"No": "Ei",
|
|
"OK": "OK",
|
|
"Apply": "Käytä",
|
|
"Reset": "Nollaa",
|
|
"Clear": "Tyhjennä",
|
|
"Select": "Valitse",
|
|
"Upload": "Lataa",
|
|
"Download": "Lataa",
|
|
"Copy": "Kopioi",
|
|
"Paste": "Liitä",
|
|
"Cut": "Leikkaa",
|
|
"Undo": "Kumoa",
|
|
"Redo": "Tee uudelleen",
|
|
"Name": "Nimi",
|
|
"Description": "Kuvaus",
|
|
"Status": "Tila",
|
|
"Type": "Tyyppi",
|
|
"Date": "Päivämäärä",
|
|
"Time": "Aika",
|
|
"Created": "Luotu",
|
|
"Updated": "Päivitetty",
|
|
"Actions": "Toiminnot",
|
|
"Details": "Tiedot",
|
|
"View": "Näytä",
|
|
"New": "Uusi",
|
|
"Total": "Yhteensä",
|
|
"Count": "Määrä",
|
|
"Price": "Hinta",
|
|
"Cost": "Kustannus",
|
|
"Free": "Ilmainen",
|
|
"Paid": "Maksettu",
|
|
"Enable": "Ota käyttöön",
|
|
"Disable": "Poista käytöstä",
|
|
"Enabled": "Käytössä",
|
|
"Disabled": "Pois käytöstä",
|
|
"Online": "Online",
|
|
"Offline": "Offline",
|
|
"Available": "Saatavilla",
|
|
"Unavailable": "Ei saatavilla",
|
|
"Required": "Pakollinen",
|
|
"Optional": "Valinnainen",
|
|
"Default": "Oletus",
|
|
"Custom": "Mukautettu",
|
|
"Advanced": "Lisäasetukset",
|
|
"Basic": "Perus",
|
|
"Help": "Apua",
|
|
"Support": "Tuki",
|
|
"Documentation": "Dokumentaatio",
|
|
"Version": "Versio",
|
|
"Language": "Kieli",
|
|
"Theme": "Teema",
|
|
"Light": "Vaalea",
|
|
"Dark": "Tumma",
|
|
"Auto": "Automaattinen",
|
|
"Endpoint": "Pääteeksi",
|
|
"Combos": "Yhdistelmät",
|
|
"Quota Tracker": "Kiintiyden seuranta",
|
|
"MITM": "MITM",
|
|
"CLI Tools": "Työkalut",
|
|
"Console Log": "Konsolilokit",
|
|
"System": "Järjestelmä",
|
|
"Debug": "Virheenkorjaus",
|
|
"Shutdown": "Sammuta",
|
|
"Close Proxy": "Sulje välityspalvelin",
|
|
"Are you sure you want to close the proxy server?": "Oletko varma, että haluat sulkea välityspalvelimen?",
|
|
"Server Disconnected": "Palvelin katkaistiin",
|
|
"The proxy server has been stopped.": "Välityspalvelin on pysäytetty.",
|
|
"Reload Page": "Päivitä sivu",
|
|
"Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Palvelu on käynnissä terminaalissa. Voit sulkea tämän verkkosivun. Sammutus pysäyttää palvelun.",
|
|
"Manage your AI provider connections": "Hallitse AI-palveluntarjoajayhteyksääsi",
|
|
"Model combos with fallback": "Mallien yhdistelmät palautuksella",
|
|
"Monitor your API usage, token consumption, and request logs": "Valvo API-käyttöä, tunnusmerkkien kulutusta ja pyyntölokeja",
|
|
"Intercept CLI tool traffic and route through 9Router": "Sieppaa CLI-työkaluliikenteen ja reitit 9Routerin kautta",
|
|
"Configure CLI tools": "Konfiguroi CLI-työkalut",
|
|
"API endpoint configuration": "API-päätepisteen konfiguraatio",
|
|
"Manage your preferences": "Hallitse asetuksiasi",
|
|
"Debug translation flow between formats": "Virheenkorjaus kääntämisvirta formaattien välillä",
|
|
"Live server console output": "Palvelimen konsolin tulostus reaaliajassa",
|
|
"Create model combos with fallback support": "Luo malliyhdistelmiä palautustuen kanssa",
|
|
"Local Mode": "Paikallinen tila",
|
|
"Running on your machine": "Käynnissä koneellasi",
|
|
"Database Location": "Tietokannan sijainti",
|
|
"Download Backup": "Lataa varmuuskopio",
|
|
"Import Backup": "Tuo varmuuskopio",
|
|
"Database backup downloaded": "Tietokannan varmuuskopio ladattiin",
|
|
"Database imported successfully": "Tietokanta tuotiin onnistuneesti",
|
|
"Security": "Turvallisuus",
|
|
"Require login": "Vaadi kirjautumista",
|
|
"When ON, dashboard requires password. When OFF, access without login.": "Kun ON, kojelauta vaatii salasanaa. Kun OFF, pääsy ilman kirjautumista.",
|
|
"Current Password": "Nykyinen salasana",
|
|
"Enter current password": "Kirjoita nykyinen salasana",
|
|
"New Password": "Uusi salasana",
|
|
"Enter new password": "Kirjoita uusi salasana",
|
|
"Confirm New Password": "Vahvista uusi salasana",
|
|
"Confirm new password": "Vahvista uusi salasana",
|
|
"Update Password": "Päivitä salasana",
|
|
"Set Password": "Aseta salasana",
|
|
"Password updated successfully": "Salasana päivitettiin onnistuneesti",
|
|
"Passwords do not match": "Salasanat eivät täsmää",
|
|
"Routing Strategy": "Reititysstrategia",
|
|
"Round Robin": "Kiertelevä robotti",
|
|
"Cycle through accounts to distribute load": "Kierrä tileillä kuormituksen jakamiseksi",
|
|
"Sticky Limit": "Kiinteä raja",
|
|
"Calls per account before switching": "Puhelut tiliä kohti ennen vaihtamista",
|
|
"Network": "Verkko",
|
|
"Outbound Proxy": "Lähtevä välityspalvelin",
|
|
"Enable proxy for OAuth + provider outbound requests.": "Ota käyttöön välityspalvelin OAuth + palveluntarjoajan lähteviin pyyntöihin.",
|
|
"Proxy URL": "Välityspalvelimen URL",
|
|
"Leave empty to inherit existing env proxy (if any).": "Jätä tyhjäksi periä olemassa olevaa env-välityspalvelinta (jos sellainen on).",
|
|
"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",
|
|
"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ä",
|
|
"Proxy test OK": "Välityspalvelimen testi OK",
|
|
"Proxy test failed": "Välityspalvelimen testi epäonnistui",
|
|
"Please enter a Proxy URL to test": "Kirjoita testattava välityspalvelimen URL",
|
|
"Observability": "Havainnointitarkkuus",
|
|
"Enable Observability": "Ota havainnointitarkkuus käyttöön",
|
|
"Turn request detail recording on/off globally": "Poista pyynnön yksityiskohtien tallentaminen käyttöön/pois käytöstä maailmanlaajuisesti",
|
|
"Max Records": "Max-tietueet",
|
|
"Maximum request detail records to keep (older records are auto-deleted)": "Maksimaalinen pyynnön yksityiskohtitietueet säilytettäväksi (vanhemmat tietueet poistetaan automaattisesti)",
|
|
"Batch Size": "Erän koko",
|
|
"Number of items to accumulate before writing to database (higher = better performance)": "Tietokantaan kirjoittamista edeltävien kerättävien kohteiden lukumäärä (korkeampi = parempi suorituskyky)",
|
|
"Flush Interval (ms)": "Tyhjennysväli (ms)",
|
|
"Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Enimmäisaika odottaa ennen puskurin tyhjentämistä (estää tietojen menetyksen matalan liikenteen aikana)",
|
|
"Max JSON Size (KB)": "Maksimaalinen JSON-koko (KB)",
|
|
"Maximum size for each JSON field (request/response) before truncation": "Kunkin JSON-kentän (pyynnön/vastauksen) enimmäiskoko ennen katkaisua",
|
|
"All data stored on your machine": "Kaikki tiedot tallennettu koneellasi",
|
|
"MITM Server": "MITM-palvelin",
|
|
"Running": "Käynnissä",
|
|
"Stopped": "Pysäytetty",
|
|
"Cert": "Sertifikaatti",
|
|
"Server": "Palvelin",
|
|
"Purpose:": "Tarkoitus:",
|
|
"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",
|
|
"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",
|
|
"Failed to start server": "Palvelimen käynnistäminen epäonnistui",
|
|
"Server stopped — all DNS cleared": "Palvelin pysäytetty — kaikki DNS poistettu",
|
|
"Failed to stop server": "Palvelimen pysäyttäminen epäonnistui",
|
|
"Sudo password is required": "Sudo-salasana vaaditaan",
|
|
"Stop Server": "Pysäytä palvelin",
|
|
"Start Server": "Käynnistä palvelin",
|
|
"Enable DNS per tool below to activate interception": "Ota DNS käyttöön kunkin alla olevan työkalun osalta aktivoidaksesi sieppauksen",
|
|
"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",
|
|
"Click to add, click again to remove. Changes are saved automatically.": "Napsauta lisätäksesi, napsauta uudelleen poistaaksesi. Muutokset tallennetaan automaattisesti."
|
|
}
|