Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility
Made-with: Cursor
2026-03-16 22:30:07 -04:00
{
"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" ,
2026-08-05 00:45:27 -04:00
"Style" : "Tyyli" ,
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
2026-05-14 22:21:24 -04:00
"Usage" : "Käyttötilastot" ,
Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility
Made-with: Cursor
2026-03-16 22:30:07 -04:00
"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" ,
2026-08-05 00:45:27 -04:00
"e.g. a warm, gentle voice, speaking slowly with a British accent" : "esim.: lämmin, pehmeä ääni, joka puhuu hitaasti brittiaksentilla" ,
Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility
Made-with: Cursor
2026-03-16 22:30:07 -04:00
"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" ,
2026-05-16 00:02:33 -04:00
"Click to add, click again to remove. Changes are saved automatically." : "Napsauta lisätäksesi, napsauta uudelleen poistaaksesi. Muutokset tallennetaan automaattisesti." ,
2026-05-16 00:39:39 -04:00
"⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk." : "⚠️ Riski-ilmoitus: Tämä palveluntarjoaja käyttää tilaus-/OAuth-istuntoa, jota ei ole virallisesti lisensoitu välityspalvelin-/reititinkäyttöön. Tili voidaan rajoittaa tai estää. Käyttö omalla vastuulla." ,
2026-06-06 01:45:32 -04:00
"⚠️ MITM intercepts HTTPS traffic of IDE tools (Antigravity, GitHub Copilot, Kiro) via local CA to redirect requests to your providers. May violate ToS → account ban. Use at your own risk." : "⚠️ MITM sieppaa IDE-työkalujen (Antigravity, GitHub Copilot, Kiro) HTTPS-liikennettä paikallisen CA:n kautta uudelleenohjatakseen pyyntöjä palveluntarjoajillesi. Voi rikkoa ToS:ää → tilin estoriski. Käyttö omalla vastuulla." ,
"Endpoint is exposed without an API key." : "Päätepiste on alttiina ilman API-avainta."
Add multi-language support for UI
- Add 30 new locale files (ar, bn, cs, da, de, el, es, fi, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tl, tr, uk, ur, zh-TW)
- Update i18n config to register new languages
- Update LanguageSwitcher component to support expanded language list
- Update localDb and pricing constants for i18n compatibility
Made-with: Cursor
2026-03-16 22:30:07 -04:00
}