{
  "_version": "2026-04-06",
  "integration": {
    "title1": "Integroi sekunneissa.",
    "title2": "Skaalaa äärettömään.",
    "description": "Täysin OpenAI-yhteensopivat päätepisteet. Vaihda palveluntarjoajaa vaihtamatta koodiasi. Yksi API-avain, jokainen malli.",
    "feature1": "OpenAI-yhteensopivat päätepisteet",
    "feature2": "Automaattinen palveluntarjoajan vikasieto",
    "feature3": "Monen protokollan tuki",
    "cta": "Lue koko API Docs"
  },
  "disclaimer": {
    "backendIssues": "Taustajärjestelmässämme on tällä hetkellä ongelmia. Työskentelemme aktiivisesti korjauksen parissa, ja se tulee takaisin verkkoon pian. Jos tarvitset tukea, ota meihin yhteyttä Discordissa."
  },
  "nav": {
    "chat": "Keskustelu",
    "image": "Kuva",
    "discord": "Ristiriita",
    "dashboard": "Kojelauta",
    "admin": "Ylläpito",
    "logout": "Kirjaudu ulos",
    "login": "Kirjaudu sisään",
    "getStarted": "Aloita",
    "signUp": "Rekisteröidy",
    "chatPlayground": "Chat-leikkikenttä",
    "imagePlayground": "Kuvaleikkikenttä",
    "joinDiscord": "Liity Discordiin",
    "adminPanel": "Hallintapaneeli",
    "models": "Mallit",
    "modelsPage": "Mallit",
    "docs": "Asiakirjat",
    "products": "Tuotteet",
    "pricing": "Hinnoittelu",
    "community": "yhteisössä",
    "systemsOnline": "Kaikki järjestelmät verkossa",
    "uptime": "Päällä",
    "language": "Kieli",
    "productMenu": {
      "groups": {
        "conversation": "Keskustelu",
        "voice": "Ääni ja musiikki",
        "tools": "Äänityökalut",
        "create": "Luo",
        "createDesc": "Luo tyhjästä",
        "speak": "Puhu",
        "speakDesc": "Ääni ja selostus",
        "process": "Prosessi",
        "processDesc": "Olemassa oleva ääni"
      },
      "chat": {
        "title": "Keskustelu",
        "desc": "GPT, Claude, Gemini ja paljon muuta"
      },
      "image": {
        "title": "Kuvat",
        "desc": "Flux, SDXL, Imagen"
      },
      "models": {
        "title": "Mallit",
        "desc": "Yli 65 mallia, yksi päätepiste"
      },
      "tts": {
        "title": "Tekstistä puheeksi",
        "desc": "Yli 100 ääntä, monikielinen"
      },
      "voiceover": {
        "title": "Ääniselostus",
        "desc": "Elokuvallinen kerronta"
      },
      "audiobook": {
        "title": "Äänikirja",
        "desc": "Käsikirjoitus kerrontaan"
      },
      "podcast": {
        "title": "Podcast",
        "desc": "Monen puhujan dialogi"
      },
      "music": {
        "title": "Musiikki",
        "desc": "Suno, ElevenLabs Music"
      },
      "sfx": {
        "title": "Äänitehosteet",
        "desc": "Luo FX kehotteesta"
      },
      "transcription": {
        "title": "Transkriptio",
        "desc": "Ääni tekstiksi, päiväkirja"
      },
      "audioTools": {
        "title": "Äänityökalut",
        "desc": "Eristys ja äänenvaihdin"
      },
      "dubbing": {
        "title": "Dubbaus",
        "desc": "Ääni mille tahansa kielelle"
      },
      "voiceLibrary": {
        "title": "Äänikirjasto",
        "desc": "Kloonaa ja hallitse ääniä"
      },
      "video": {
        "title": "Video",
        "desc": "Veo, Sora, Runway"
      },
      "voiceClone": {
        "title": "Ääniklooni",
        "desc": "Oma äänesi 30-luvulla"
      },
      "comparePrices": "Vertaa hintoja",
      "new": "Uusi"
    }
  },
  "docs": {
    "nav": {
      "title": "Dokumentaatio",
      "gettingStarted": "Aloitus",
      "authentication": "Todennus",
      "quickstart": "Pika-aloitus",
      "apiReference": "API-viite",
      "chatCompletions": "Chatin loppuun saattaminen",
      "mediaGeneration": "Median sukupolvi",
      "billing": "Laskutus",
      "billingCredits": "Laskutus ja hyvitykset",
      "cliTools": "CLI-työkalut",
      "codingAgents": "Koodausagentit",
      "apps": "AI-sovellukset",
      "legalSupport": "Lakiasiat ja tuki",
      "terms": "Palveluehdot",
      "privacy": "Tietosuojakäytäntö",
      "navigation": "Navigointi",
      "models": "Mallit",
      "dashboard": "Kojelauta",
      "menu": "Valikko",
      "parameters": "Parametrit",
      "audio": "Ääni",
      "video": "Video",
      "images": "Kuvat"
    },
    "badge": "INTEGRAATIOT",
    "title": "Integraatiot",
    "subtitle": "Käytä Api.Airforcea suosikki tekoälytyökalujesi kanssa. Aloita valitsemalla alta opas.",
    "claudeCodeInfo": "on Anthropicin virallinen koodaus CLI. Yhdistä se Api.Airforceen, jotta voit käyttää kaikkia Claude-malleja olemassa olevan työnkulun kanssa.",
    "claudeCodeSetup": "Aseta ympäristömuuttujat alla ja käynnistä Claude Code. Se käyttää automaattisesti Api.Airforcea taustaohjelmana.",
    "persistent": "Pysyvä kokoonpano",
    "persistentDesc": "Voit välttää ympäristömuuttujien asettamisen joka kerta lisäämällä ne Claude Code -asetustiedostoosi:",
    "availableModels": "Saatavilla olevat mallit",
    "troubleshooting": "Vianetsintä",
    "ccTrouble1Title": "Nopea tila ei toimi",
    "ccTrouble1Desc": "Pikatilan tarkistukset on koodattu osoitteeseen api.anthropic.com. Ohita tämä tarkistus asettamalla CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS=1.",
    "ccTrouble2Title": "Beta-otsikkovirheet",
    "ccTrouble2Desc": "Jos näet virheitä anthropic-beta-otsikoissa, aseta CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.",
    "codexInfo": "on OpenAI:n virallinen koodauksen CLI. Osoita se Api.Airforceen päästäksesi kaikkiin OpenAI-yhteensopiviin malleihin.",
    "codexModelsDesc": "Kaikki Api.Airforcen chat-mallit ovat saatavilla Codex CLI:n kautta:",
    "andMore": "...ja yli 90 mallia. Katso mallit-sivulta täydellinen luettelo.",
    "geminiInfo": "on Googlen virallinen CLI Gemini-malleille.",
    "quickStart": "Pika-aloitus",
    "note": "Huom",
    "claudeCodeDesc": "Käytä Api.Airforcea Claude Code-, Cursor-, VS Code -laajennusten ja minkä tahansa Anthropic-yhteensopivan asiakkaan kanssa.",
    "claudeCodeNote": "Toimii kaikkien Api.Airforcen Claude-mallien kanssa. Korvaa YOUR_API_KEY sovellusliittymäavaimellasi hallintapaneelista.",
    "codexDesc": "Käytä Api.Airforcea OpenAI Codex CLI:n ja minkä tahansa OpenAI-yhteensopivan asiakkaan kanssa. Käytä kaikkia malleja yhden päätepisteen kautta.",
    "codexNote": "Käyttää OpenAI-yhteensopivaa /v1/chat/completions-päätepistettä. Toimii kaikkien Api.Airforcen chat-mallien kanssa.",
    "geminiDesc": "Käytä Api.Airforcea Gemini CLI:n ja minkä tahansa Google GenAI -yhteensopivan asiakkaan kanssa. Käytä Gemini-malleja Clauden ja GPT:n rinnalla.",
    "geminiNote": "Gemini CLI -tuki on kokeellista. Aseta perus-URL-osoite ja API-avain yllä olevan kuvan mukaisesti.",
    "readyTitle": "Oletko valmis aloittamaan?",
    "readyDesc": "Hanki API-avain kojelaudalta ja aloita Api.Airforcen käyttö suosikkityökaluillasi.",
    "getApiKey": "Hanki API-avain",
    "viewModels": "Näytä mallit",
    "gettingStarted": "Aloitus",
    "stepSignup": "Luo tili",
    "stepApiKey": "Hanki API-avain",
    "stepBilling": "Täydennyspisteet",
    "appsTitle": "AI-sovellukset",
    "viewGuide": "Katso opas",
    "backToDocs": "Takaisin asiakirjoihin",
    "stCardDesc": "Käytä Api.Airforcea SillyTavernin kanssa roolipeleihin ja hahmokeskusteluun. Täydellinen asennusopas esiasetusten ja merkkien tuontien kanssa.",
    "janitorCardDesc": "Käytä Api.Airforcea käänteisenä välityspalvelimena Janitor AI:n kanssa. Nopea asennus API-avaimella.",
    "auth": {
      "badge": "TODENNUS",
      "title": "Todennus ja tili",
      "subtitle": "Opi luomaan tili, hallitsemaan API-avaimia ja todentamaan pyyntösi.",
      "accountSetup": "Tilin asetukset",
      "accountSetupDesc": "Api.Airforcen käytön aloittaminen kestää vain muutaman vaiheen:",
      "step1Title": "Luo tili",
      "step1Content": "Vieraile kirjautumissivulla ja luo ilmainen tili käyttäjätunnuksella ja salasanalla. Aloittamiseen ei tarvita sähköpostia tai luottokorttia.",
      "step2Title": "Hanki API-avain",
      "step2Content": "Kun olet kirjautunut sisään, siirry hallintapaneeliin. Ensisijainen API-avain (etuliitteellä sk-air-) luodaan automaattisesti ja on valmis käytettäväksi.",
      "step3Title": "Tee ensimmäinen pyyntösi",
      "step3Content": "Käytä API-avainta Authorization-otsikossa pyyntöjen todentamiseen mihin tahansa päätepisteeseen.",
      "apiKeyManagement": "API-avainten hallinta",
      "apiKeyManagementDesc": "Hallitse API-avaimia hallintapaneelista. Kaikki näppäimet käyttävät etuliitettä sk-air-.",
      "primaryKey": "Ensisijainen API-avain",
      "primaryKeyDesc": "Jokainen tili saa ensisijaisen avaimen, jolla on täydet käyttöoikeudet. Tätä avainta ei voi poistaa, mutta se voidaan luoda uudelleen hallintapaneelista.",
      "secondaryKeys": "Toissijaiset API-avaimet",
      "secondaryKeysDesc": "Luo lisäavaimia mukautetuilla rajoituksilla eri sovelluksille:",
      "secondaryFeature1": "Aseta mukautetut RPM-rajoitukset (pyyntöjä minuutissa) avainta kohden",
      "secondaryFeature2": "Aseta luottoraja avainkohtaiseen kulutukseen",
      "secondaryFeature3": "Merkitse avaimet helppoa tunnistamista ja hallintaa varten",
      "authMethods": "Todennusmenetelmät",
      "authMethodsDesc": "Sisällytä API-avaimesi Authorization-otsikkoon siirtotietunnuksena:",
      "securityNotice": "Turvallisuusilmoitus",
      "securityNoticeContent": "Älä koskaan jaa API-avainta julkisesti, siirrä sitä versionhallintaan tai paljasta sitä asiakaspuolen koodissa. Käsittele sitä kuin salasanaa. Jos avaimesi on vaarantunut, luo se välittömästi uudelleen hallintapaneelista.",
      "nextSteps": "Seuraavat vaiheet",
      "quickstartLink": "Pika-aloitusopas",
      "dashboardLink": "Siirry hallintapaneeliin"
    },
    "quickstart": {
      "badge": "PIKAALOITUS",
      "title": "Aloitus",
      "subtitle": "Kaikki mitä tarvitset API-pyyntöjen tekemiseen muutamassa minuutissa.",
      "baseUrl": "Perus-URL-osoite",
      "baseUrlDesc": "Kaikki API-pyynnöt tulee tehdä seuraavaan perus-URL-osoitteeseen:",
      "endpoints": "Käytettävissä olevat päätepisteet",
      "endpointChat": "OpenAI-yhteensopiva chat",
      "endpointMessages": "Ihmisten kanssa yhteensopivia viestejä",
      "endpointImages": "Kuvan ja median luominen",
      "endpointModels": "Listaa saatavilla olevat mallit",
      "rateLimits": "Käyttörajat",
      "rateLimitsDesc": "Korkorajoituksia sovelletaan suunnitelmatasoittain. Rajat mitataan pyyntöinä minuutissa (RPM) ja pyyntöinä päivässä (RPD).",
      "colPlan": "Suunnittele",
      "colRpm": "RPM",
      "colRpd": "RPD",
      "paygNote": "Huom",
      "paygNoteContent": "Positiivisen saldon omaavat käyttäjät ohittavat nämä porrastetut hintarajat kokonaan.",
      "quickExamples": "Pikaisia esimerkkejä",
      "modelDiscovery": "Mallin löytö",
      "modelDiscoveryDesc": "/v1/models-päätepisteen avulla voit hakea luettelon kaikista saatavilla olevista malleista niiden ominaisuuksilla ja hinnoittelulla.",
      "tip": "Vihje",
      "modelDiscoveryTip": "Voit myös selata malleja visuaalisesti Mallit-sivulla, joka näyttää reaaliaikaisen tilan, hinnoittelun ja kontekstiikkunat."
    },
    "chat": {
      "title": "Keskustelu- ja viesti-API",
      "subtitle": "Täydellinen viite OpenAI- ja Anthropic-yhteensopiviin chat-päätepisteisiin.",
      "openaiDesc": "/v1/chat/completions-päätepiste on täysin yhteensopiva OpenAI Chat Completions API:n kanssa. Käytä sitä minkä tahansa OpenAI SDK:n tai yhteensopivan asiakkaan kanssa.",
      "requestUrl": "Pyydä URL-osoite",
      "parameters": "Parametrit",
      "colParam": "Parametri",
      "colType": "Kirjoita",
      "colRequired": "Pakollinen",
      "colDesc": "Kuvaus",
      "paramModel": "Käytettävä mallitunnus (esim. gpt-4.1-mini, claude-sonnet-4-20250514, deepseek-v3.2)",
      "paramMessages": "Joukko viestiobjekteja roolilla ja sisällöllä. Tukee järjestelmä-, käyttäjä- ja avustajarooleja.",
      "paramMaxTokens": "Vastauksessa luotavien tunnuksien enimmäismäärä.",
      "paramTemperature": "Näytteenottolämpötila välillä 0 - 2. Suuremmat arvot tuottavat enemmän satunnaisia lähtöjä.",
      "paramStream": "Kun tosi, vastaukset lähetetään palvelimen lähettäminä tapahtumina, kun niitä luodaan.",
      "paramTools": "Joukko työkalun/funktion määritelmiä, joita malli voi kutsua.",
      "paramToolChoice": "Ohjaa, milloin malli kutsuu työkaluja. Käytä \"auto\", \"ei mitään\", \"pakollinen\" tai tiettyä työkalua.",
      "paramStreamOptions": "Muita suoratoistovaihtoehtoja, esim. {\"include_usage\": true} sisällyttääksesi tunnuksen käytön viimeiseen osaan.",
      "paramSystem": "Järjestelmäkehote sisältölohkojen merkkijonona tai joukona. Asettaa avustajan toiminnan.",
      "paramTopP": "Ydinnäytteenottoparametri. Harkitse vain tokeneja, joiden todennäköisyysmassa on top_p.",
      "paramTopK": "Vain näyte ylimmästä K-vaihtoehdosta jokaiselle seuraavalle tunnukselle.",
      "paramStopSequences": "Joukko merkkijonoja, jotka pysäyttävät mallin luomisen, kun se kohtaa.",
      "basicExample": "Perusesimerkki",
      "responseExample": "Vastausesimerkki",
      "streamingExample": "Esimerkki suoratoistosta",
      "streamingDesc": "Aseta streamin arvoksi tosi, jos haluat vastaanottaa osittaisia viestideltoja palvelimen lähettäminä tapahtumina. Sisällytä stream_options ja include_usage saadaksesi tunnistemäärät.",
      "toolCallingExample": "Esimerkki työkalukutsusta",
      "toolCallingDesc": "Määritä työkalut, joita malli voi kutsua. Malli palauttaa taulukon tool_calls, kun se päättää kutsua funktion.",
      "anthropicDesc": "/v1/messages-päätepiste on yhteensopiva Anthropic Messages API:n kanssa. Käytä sitä Anthropic SDK:n tai minkä tahansa yhteensopivan asiakkaan kanssa.",
      "anthropicExample": "Antrooppinen esimerkki",
      "multimodalExample": "Multimodaalinen esimerkki",
      "multimodalDesc": "Lähetä kuvia tekstin rinnalla käyttämällä viestitaulukon sisältölohkoja, joissa on image_url-tyypit.",
      "modelDiscovery": "Mallin löytö",
      "modelDiscoveryDesc": "Käytä /v1/models-päätepistettä löytääksesi käytettävissä olevat mallit, niiden ominaisuudet ja hinnoittelun reaaliajassa."
    },
    "media": {
      "title": "Median generointi-API",
      "subtitle": "Täydellinen viite kuvien, videoiden ja musiikin sukupolven päätepisteisiin.",
      "endpointDesc": "/v1/images/generations-päätepiste tukee kuvien, videoiden ja musiikin luomista. Laajennetut parametrit ovat mallikohtaisia.",
      "commonParams": "Yleiset parametrit",
      "colParam": "Parametri",
      "colType": "Kirjoita",
      "colRequired": "Pakollinen",
      "colDesc": "Kuvaus",
      "paramModel": "Sukupolvissa käytettävä mallitunnus.",
      "paramPrompt": "Tekstikehote, jossa kerrotaan, mitä luodaan.",
      "paramN": "Luotavien kuvien määrä (oletus: 1).",
      "paramSize": "Lähtökoko, esim. \"1024x1024\". Mallikohtaisia ​​kokoja saatetaan soveltaa.",
      "paramResponseFormat": "Vastausmuoto: \"url\" tai \"b64_json\".",
      "paramSse": "Kun tosi, suoratoista edistymispäivitykset palvelimen lähettämien tapahtumien kautta.",
      "basicExample": "Perusesimerkki",
      "responseExample": "Vastausesimerkki",
      "modelSpecific": "Mallikohtaiset parametrit",
      "modelSpecificDesc": "Jokainen malliperhe tukee lisäparametreja sukupolven hienorakeiseen ohjaukseen.",
      "extendedExamples": "Laajennetut esimerkit",
      "flux": {
        "aspectRatio": "Kuvasuhde W:K (esim. '16:9', '1:1').",
        "imageUrls": "Viitekuvat (max 4). Käytetään kuvasta kuvaksi luomiseen."
      },
      "nano": {
        "aspectRatio": "Kuvasuhde W:K (esim. '16:9', '1:1').",
        "resolution": "Lähtöresoluutio: '1K', '2K' tai '4K'.",
        "imageUrls": "Viitekuvat (enintään 14). Käytetään kuvasta kuvaksi luomiseen."
      },
      "grok": {
        "mode": "Videon luontitila: \"normaali\", \"mausteinen\" tai \"hauska\".",
        "resolution": "Videon resoluutio: '480p' tai '720p'.",
        "aspectRatio": "Kuvasuhde W:H.",
        "imageUrls": "Viitekuvat (max 2) videon luomiseen."
      },
      "suno": {
        "custom": "Ota mukautettu tila käyttöön henkilökohtaisen musiikin luomiseksi.",
        "instrumental": "Luo vain instrumentaalista musiikkia (ei laulua).",
        "style": "Musiikkityylin kuvaus (esim. \"K-pop\", \"Heavy Metal\", \"Jazz\")."
      },
      "wan": {
        "aspectRatio": "Kuvasuhde W:H.",
        "duration": "Videon kesto sekunneissa.",
        "resolution": "Videon resoluutio (esim. '480p', '720p').",
        "sound": "Sisällytä ääni luotuun videoon.",
        "imageUrl": "Aloita kehyskuvan URL-osoite videon luomista varten."
      }
    },
    "billing": {
      "title": "Laskutus ja hyvitykset",
      "subtitle": "Ymmärrä hinnoittelua, hallitse luottoja ja valitse tarpeisiisi sopiva suunnitelma.",
      "payg": "Pay-as-You-Go",
      "paygDesc": "Maksa vain siitä mitä käytät. Lisää krediittejä saldoosi ja kuluta ne miljoonan tokenin hinnalla.",
      "howItWorks": "Miten se toimii",
      "paygStep1": "Ota Pay-as-You-Go käyttöön hallintapaneelissasi",
      "paygStep2": "Lisää krediittejä kortilla (Creem) tai kryptolla",
      "paygStep3": "Käytä mitä tahansa mallia – kulut vähennetään saldostasi per merkki",
      "paygStep4": "Krediitit eivät koskaan vanhene ja säilyvät kulutukseen asti",
      "paygBenefit": "Hyöty",
      "paygBenefitContent": "Positiivisen saldon omaavat käyttäjät ohittavat kaikki porrastetut hintarajat ja pääsevät eksklusiivisiin roolipeleihin ja huipputason malliversioihin.",
      "subscriptions": "Tilaukset",
      "subscriptionsDesc": "Valitse toistuvien tilausten tai kuukauden korttien välillä ennakoitavaa käyttöä varten.",
      "recurring": "TOISTUVA",
      "recurringTitle": "Kuukausitilaus",
      "recurringFeature1": "Uusiutuu automaattisesti joka kuukausi",
      "recurringFeature2": "Peru milloin tahansa hallintapaneelista",
      "recurringFeature3": "Maksa kortilla (Creem) tai kryptolla",
      "oneMonth": "KERTAMAKSU",
      "oneMonthTitle": "1 kuukauden lippu",
      "oneMonthFeature1": "Kertamaksu, ei automaattista uusimista",
      "oneMonthFeature2": "Koko suunnitelman edut 30 päivän ajan",
      "oneMonthFeature3": "Saatavilla kryptomaksuilla",
      "planComparison": "Suunnitelmien vertailu",
      "colFeature": "Ominaisuus",
      "rowRpm": "Pyynnöt per minuutti",
      "rowRpd": "Pyyntöjä päivässä",
      "rowModels": "Mallin käyttöoikeus",
      "rowSupport": "Tuki",
      "rowPrice": "Hinta",
      "basicModels": "Perusmallit",
      "allModels": "Kaikki mallit",
      "communitySupport": "yhteisössä",
      "prioritySupport": "Prioriteetti",
      "dedicatedSupport": "Omistettu",
      "fullContext": "Koko kontekstin lisäys",
      "fullContextTitle": "Koko kontekstin lisäys",
      "fullContextDesc": "Poista alustan asettamat kontekstin pituusrajoitukset. Palveluntarjoajan mallirajoitukset ovat edelleen voimassa. Toimii minkä tahansa suunnitelman kanssa.",
      "fullContextFeature1": "Rajoittamaton kontekstin pituus kaikissa malleissa",
      "fullContextFeature2": "Toimii minkä tahansa tilaussuunnitelman kanssa",
      "fullContextFeature3": "Kuukausilaskutus 9,99 €/kk",
      "multipliers": "Pyydä kertoimia",
      "multipliersDesc": "Jotkut mallit maksavat enemmän kuin yhden pyyntöpaikan puhelua kohden, koska niiden käyttö on kalliimpaa. Minuutti- ja päivärajasi verrataan tähän kertoimeen – jos sinulla ei ole tarpeeksi jäljellä, API palauttaa 429 Liian monta pyyntöä.",
      "colCost": "Kustannukset",
      "colType": "Kirjoita",
      "colExamples": "Esimerkkimallit",
      "multType0": "Ilmainen (ei hintarajoituskustannuksia)",
      "multType1": "Vakio",
      "multType2": "Korkeatasoinen",
      "multType3": "Korkeatasoinen",
      "multType5": "Premium",
      "multType11": "Vain jako-jako",
      "mult11NoteLabel": "tärkeä",
      "mult11Note": "Mallit, joissa on merkintä ×11, EIVÄT ole saatavilla ilmaisilla, Premium- tai Master-tilauksilla – jopa maksullisella tilauksella niihin soittaminen palauttaa virheen. Vain Pay-as-You-Go-käyttäjät, joilla on positiivinen saldo, voivat käyttää niitä.",
      "planAccess": "Mitä suunnitelmani voi käyttää?",
      "planAccessDesc": "Jokaisella suunnitelmalla on minuuttikohtainen pyyntöbudjetti. Malli, jossa on kerroin ×N, kuluttaa N paikkaa puhelua kohden – joten Premium-käyttäjä (5/min), joka soittaa ×2-mallille, voi tehdä 2 pyyntöä minuutissa tai ×5-mallille kerran minuutissa. Jos jäljellä oleva budjettisi on kertoimen alapuolella, pyyntö hylätään arvolla 429.",
      "colPlan": "Suunnittele",
      "paygWithBalance": "positiivisella saldolla",
      "unlimited": "Rajoittamaton",
      "paymentMethods": "Maksutavat",
      "paymentMethodsDesc": "Tuemme korttimaksuja Creemin kautta ja kryptomaksuja NowPaymentsin kautta. Emme tue enää suoraa Creem- tai Creem-laskutusta.",
      "cryptoDesc": "Bitcoin, Ethereum, USDT ja muut kryptovaluutat NowPaymentsin kautta",
      "creemDesc": "Korttimaksut (Visa, Mastercard, Amex) — ensisijainen maksupalveluntarjoaja",
      "manageTitle": "Hallinnoi suunnitelmaasi",
      "manageDesc": "Vieraile hallintapaneelissa päivittääksesi, hallitaksesi tilauksia, lisätäksesi krediittejä tai määrittääksesi lisäosia.",
      "goToDashboard": "Siirry hallintapaneeliin",
      "viewPricing": "Katso hinnoittelu",
      "usageBudget": "Suunnittele käyttöbudjetti",
      "usageBudgetDesc": "Minuutti- ja päiväpyyntörajojen lisäksi maksetuilla suunnitelmilla on kuukausittainen kustannusperusteinen luottobudjetti, joka on 10 kertaa suunnitelman hinta. Jokainen pyyntö vähentää todelliset merkkikustannukset (senteinä) tästä budjetista. Tämä ei koske ilmaisia ​​​​ja Pay-as-You-Go-käyttäjiä – heitä mitataan eri tavalla.",
      "usageBudgetMonthly": "Kuukausihinta",
      "usageBudgetCredits": "Luottobudjetti",
      "usageBudget80Title": "80 % — Ilmoitus",
      "usageBudget80Desc": "Kun olet käyttänyt 80 % kuukausibudjetistasi, hallintapaneeli näyttää varoituksen ja tarjoaa täyttövaihtoehdon. Tilauksesi jatkuu normaalisti.",
      "usageBudget100Title": "100 % — Estetty uusimiseen asti",
      "usageBudget100Desc": "100 %:n maksullisen suunnitelman API-kutsut palauttavat virheilmoituksen, jossa sinua pyydetään odottamaan seuraavaa laskutusjaksoa tai ostamaan täyttö. Itse tilauksesi pysyy aktiivisena.",
      "usageBudgetRenewalTitle": "Miten uusiminen toimii",
      "usageBudgetRenewalDesc": "Seuraavan kuukausittaisen tilausmaksun yhteydessä luottobudjettiasi täydennetään toisella täysillä (+9 990 Premiumilla, +24 990 Master). \"Käytetty\" laskuri ei nollaudu – krediittejä kertyy, joten raskas kuukausi ei rankaise sinua seuraavasta jaksosta.",
      "refillTitle": "Keskivaiheen täyttösuunnitelma",
      "refillDesc": "Jos käytät budjettisi loppuun syklin puolivälissä, voit ostaa kertaluonteisen suunnitelman täyttöpaketin Creemin kautta palauttaaksesi \"käytetty\" -arvon välittömästi nollaan ja varmistaaksesi, että vähintään yksi täysi ikkuna on jälleen käytettävissä.",
      "refillFeature1": "Premium Refill: 9,99 dollaria - sama kuin kuukausihinta",
      "refillFeature2": "Master Refill: 24,99 dollaria - sama kuin kuukausihinta",
      "refillFeature3": "Kertamaksu – ei vaikuta aktiiviseen tilaukseen, sopimukseen tai voimassaolon päättymispäivään",
      "refillFeature4": "Saatavilla kojelaudan käyttövaroituksesta, kun saavutat 80 % tai enemmän"
    },
    "st": {
      "title": "SillyTavernin asennusopas",
      "subtitle": "Vaiheittainen opas SillyTavernin perustamiseen Api.Airforcen kanssa roolileikkejä ja hahmokeskusteluja varten.",
      "whyTitle": "Miksi SillyTavern?",
      "whyContent": "SillyTavern tarjoaa enemmän hallintaa AI-chat-kokemuksestasi verkkopohjaisiin vaihtoehtoihin verrattuna. Se tukee mukautettuja esiasetuksia, merkkien tuontia ja toimii luotettavasti Api.Airforcen mallien kanssa ilman tyhjiä vastausongelmia.",
      "step1Title": "Asenna SillyTavern",
      "step1Content": "Lataa ja asenna SillyTavern Launcher viralliselta verkkosivustolta. Asennuksen jälkeen siirry SillyTavern-kansioon ja suorita asennustiedosto. Kun asennus on valmis, käynnistä SillyTavern suorittamalla Launcher-kotatiedosto (jossa on isot L-kirjaimet).",
      "step2Title": "Määritä API-yhteys",
      "step2Content": "Napsauta pistokekuvaketta (\"API-yhteydet\") näytön yläosassa. Valitse API-kohdan avattavasta valikosta \"Chat Completion\". Valitse Chat Completion Source -kohdasta \"Mukautettu (Open-AI-yhteensopiva)\". Anna päätepiste ja API-avain alla olevan kuvan mukaisesti. Napsauta Yhdistä - ympyrän pitäisi muuttua vihreäksi. Tallenna sitten yhteysprofiili.",
      "step3Title": "Aseta esiasetus",
      "step3Content": "Napsauta \"AI Response Configuration\" -kuvaketta yläreunassa (API Connections -kohdan vieressä). Voit tuoda esiasetetun (.JSON-tiedoston) tai luoda oman. Säädä kontekstin kokoa, maksimivasteen pituutta ja lämpötilaa mieltymystesi mukaan. Suosittelemme poistamaan suoratoiston käytöstä tyhjien vastausten minimoimiseksi. Pidä siemen -1:ssä.",
      "step4Title": "Tuo merkit",
      "step4Content": "Napsauta \"Hahmonhallinta\" -kuvaketta (näyttää henkilökortilta). Napsauta \"Tuo merkki tiedostosta\" ja valitse .JSON-merkkitiedosto. Hahmo on heti valmis keskustelemaan. Voit myös luoda omia hahmojasi suoraan SillyTavernissa.",
      "charSourcesTitle": "Hahmon lähteet",
      "charTavern": "Yhteisön hahmokirjasto",
      "charAiCards": "Laadukkaat, moderoidut kortit",
      "charChub": "Suuri kokoelma hahmoja",
      "charBackyard": "Yhteisön tekoälyhahmot",
      "tipsTitle": "Vinkkejä",
      "tip1": "Poista suoratoisto käytöstä tyhjien vastausten välttämiseksi",
      "tip2": "Käytä deepseek-v3.2:ta tai claude-sonnet-4.5-rp:tä saadaksesi parhaat roolipelitulokset",
      "tip3": "Luo omat hahmoesiasetukset, kun olet tyytyväinen työkaluun",
      "tip4": "Tallenna yhteysprofiilisi, jotta sinun ei tarvitse määrittää uudelleen joka kerta"
    },
    "janitor": {
      "title": "Talonmies AI -asennusopas",
      "subtitle": "Pika-asennusopas Api.Airforcen käyttämiseen käänteisenä välityspalvelimena Janitor AI:n kanssa.",
      "step1Title": "Luo tili",
      "step1Content": "Luo tili Janitor AI:hen ja kirjaudu sisään, jos et ole vielä tehnyt sitä.",
      "step2Title": "Määritä API-asetukset",
      "step2Content": "Siirry Janitor AI:n API-asetuksiin. Valitse API-tyypiksi \"Käänteinen välityspalvelin\". Anna välityspalvelimen URL-osoite ja Api.Airforce API -avain. Valitse malli saatavilla olevista.",
      "step3Title": "Valitse malli",
      "step3Content": "Kirjoita mallin nimi, jota haluat käyttää. Suosittelemme DeepSeek-v3.2- tai gemini-2.5-proa parhaan laadun ja nopeuden tasapainon saavuttamiseksi. Löydät kaikki saatavilla olevat mallit Mallit-sivultamme.",
      "step4Title": "Aloita Chat",
      "step4Content": "Valitse hahmo ja aloita chattailu. Jos saat tyhjiä vastauksia, kokeile toista mallia tai säädä mukautettuja kehotteita.",
      "warningTitle": "Tunnetut rajoitukset",
      "warningContent": "Janitor AI saattaa toisinaan palauttaa tyhjiä vastauksia mallista ja kehotekokoonpanosta riippuen. Jos näin tapahtuu usein, suosittelemme kokeilemaan SillyTavernia, joka tarjoaa enemmän hallintaa ja luotettavuutta.",
      "recommendedTitle": "Suositellut mallit",
      "stRecommendTitle": "Etsitkö parempaa kokemusta?",
      "stRecommendContent": "SillyTavern tarjoaa enemmän ohjausta, mukautettuja esiasetuksia ja toimii luotettavammin Api.Airforcen kanssa. Suosittelemme vaihtamista, jos sinulla on ongelmia.",
      "stRecommendLink": "Katso SillyTavernin asennusopas"
    },
    "chub": {
      "title": "Chub AI -asennusopas",
      "subtitle": "Aseta Api.Airforce käänteiseksi välityspalvelimeksi Chubissa (chub.ai / Chub Venus) – OpenAI- ja Anthropic-yhteensopiva.",
      "step1Title": "Tili- ja API-avain",
      "step1Content": "Jos sinulla ei vielä ole tiliä, luo chub.ai-tili ja kirjaudu sisään. Luo samanaikaisesti API-avain Api.Airforce-hallintapaneeliin – tarvitset sitä seuraavassa vaiheessa.",
      "step2Title": "Ota käänteinen välityspalvelin käyttöön Secrets-kohdassa",
      "step2Content": "Avaa valikko ≡ kohdassa Chub (oikea yläkulma) → Secrets → OpenAI. Ota Reverse Proxy käyttöön ja täytä kentät alla olevan kuvan mukaisesti. URL-osoitteen on oltava perus-URL-osoite (päättyy /v1), ILMAN /chat/completions - Chub liittää itse polun.",
      "step2Note": "Huomautus: kun Chub on tallennettu, se piilottaa API-avaimen pelkkänä tekstinä. Tarkista yhteys heti tallennuksen jälkeen.",
      "step3Title": "Valitse malli chat-kokoonpanosta",
      "step3Content": "Avaa Määritykset → Kehoterakenne. Aseta API arvoksi \"OpenAI\" ja valitse avattavasta Malli-valikosta kohta, kuten gpt-4o tai gpt-4.5. Chub välittää tämän mallin nimen meille sanatarkasti.",
      "aliasTipTitle": "Vinkki: Mallialias roolipelimalleille",
      "aliasTipContent": "Chub käyttää kiinteän mallin pudotusvalikkoa – ei vapaata tekstiä. Käyttääksesi roolipelimallejamme (claude-sonnet-4.6-rp, deepseek-v3.2-speciale jne.) luo mallialias Api.Airforce-hallintapaneeliisi (esim. gpt-4o → claude-sonnet-4.6-rp) ja valitse sitten vain gpt-4o Chubista.",
      "aliasTipLink": "Luo mallialias kojelautaan",
      "step4Title": "Käytä Claudea alkuperäisesti (valinnainen)",
      "step4Content": "Haluatko käyttää Anthropic-protokollaa suoraan? Avaa Secrets → Anthropic ja ota käänteinen välityspalvelin käyttöön samalla tavalla. Tässä URL-osoite on paljas perusta https://api.airforce (ilman /v1).",
      "step5Title": "Tarkista välityspalvelin ja aloita chat",
      "step5Content": "Napsauta Tarkista välityspalvelin Chubissa – vihreä valintamerkki tarkoittaa, että yhteys toimii. Avaa sitten hahmo ja aloita chattailu. Jos saat tyhjiä vastauksia, varmista, että Chub-pudotusvalikosta valittu mallinimi on todella olemassa puolellamme (tai se on kartoitettu mallialiaksen kautta).",
      "warningTitle": "Tunnetut rajoitukset",
      "warningContent": "Chub käyttää vain keskustelun täydennyksiä – ei upotuksia tai kuvien luomista tämän välityspalvelimen kautta. Mallin pudotusvalikko on kiinteä, joten mallialiaksia suositellaan. Chub ohittaa Top-K:n.",
      "recommendedTitle": "Suositeltavat mallit roolipeleihin",
      "recommendedHint": "Nämä versiot on viritetty luovaan kirjoittamiseen ja hahmojen dialogiin.",
      "stRecommendTitle": "Haluatko enemmän hallintaa?",
      "stRecommendContent": "SillyTavern hyväksyy vapaatekstimallien nimet (aliasta ei tarvita), tarkemman pikaohjauksen ja mukautetut esiasetukset. Usein vakaampi valinta vaativiin roolipeleihin.",
      "stRecommendLink": "Katso SillyTavern opas"
    },
    "cursor": {
      "title": "Kohdistimen asennusopas",
      "subtitle": "Käytä Api.Airforcea OpenAI-yhteensopivana taustaohjelmana Cursorissa – toimii chat-paneelin ja Composerin kanssa.",
      "step1Title": "Hanki Api.Airforce API-avain",
      "step1Content": "Avaa Api.Airforce-hallintapaneeli, luo uusi API-avain ja kopioi se. Liitä se Cursoriin seuraavassa vaiheessa.",
      "step2Title": "Ohita OpenAI-päätepiste kohdistimen asetuksista",
      "step2Content": "Avaa Kohdistin → Asetukset → Mallit. Ota käyttöön \"Override OpenAI Base URL\" ja liitä arvot alla. Kytke sitten kohdistinnäppäin pois päältä ja OpenAI-näppäin PÄÄLLE.",
      "step3Title": "Lisää mukautettuja mallien nimiä",
      "step3Content": "Kursori käyttää mallin nimikenttää – kirjoita mikä tahansa ilmavoimien malli. Suosittelemme chatille ja säveltäjälle alla olevia:",
      "step4Title": "Aloita chattailu",
      "step4Content": "Avaa Cursor-chat (⌘L) tai Composer (⌘I) – kehotteet ohjaavat nyt Api.Airforcen kautta. Mallin pudotusvalikko näyttää kirjoittamasi nimet.",
      "warningTitle": "Tärkeää",
      "warningContent": "Kohdistimen välilehden automaattinen täydennys ja tekstin sisäinen ⌘K käyttävät edelleen kohdistimen omaa mallia, eikä tämä ohitus vaikuta niihin. Vain chat ja Composer reitittävät mukautetun taustasi kautta."
    },
    "roocode": {
      "title": "Roo Coden asennusopas",
      "subtitle": "Käytä Api.Airforcea LLM-taustaohjelmana Roo Code VS Code -laajennuksena.",
      "step1Title": "Asenna Roo Code",
      "step1Content": "Asenna Roo Code -laajennus VS Code Marketplacesta ja lataa editori uudelleen.",
      "step2Title": "Määritä API-toimittaja",
      "step2Content": "Avaa sivupaneelista Roo Code → ⚙ Asetukset → API Provider. Valitse \"OpenAI Compatible\" ja täytä alla olevat kentät.",
      "step3Title": "Aseta mallin tunnus",
      "step3Content": "Roo Code hyväksyy minkä tahansa mallinimen – kirjoita haluamasi Airforce-malli. Työkalukutsulla toimivat mallit antavat parhaat tulokset:",
      "step4Title": "Aloita koodaus",
      "step4Content": "Avaa Roo-chat-paneeli ja pyydä sitä lukemaan tai muokkaamaan tiedostoja. Roo Code käyttää nyt Api.Airforcea kaikkiin pyyntöihin.",
      "recommendedTitle": "Suositeltavat mallit koodaukseen",
      "recommendedHint": "Kaikki neljä tukevat työkalun kutsumista luotettavasti. Sonnet 4.6 on paras monipuolinen valinta; deepseek-v3.2 on halvin."
    },
    "kilocode": {
      "title": "Kilo-koodin asennusopas",
      "subtitle": "Kilo Code on Roo Coden haarukka - sama OpenAI-yhteensopiva asetus pätee.",
      "step1Title": "Asenna Kilo Code",
      "step1Content": "Asenna Kilo Code -laajennus VS Code Marketplacesta.",
      "step2Title": "Määritä API-toimittaja",
      "step2Content": "Avaa Kilo Code → ⚙ Asetukset → API Provider. Valitse \"OpenAI Compatible\" ja täytä alla olevat arvot.",
      "step3Title": "Aseta mallin tunnus",
      "step3Content": "Kirjoita mikä tahansa Airforcen chat-malli. Useimmat agenttiominaisuudet edellyttävät työkalun kutsumista:",
      "step4Title": "Aloita koodaus",
      "step4Content": "Avaa Kilon chat-paneeli ja anna sen lukea tai muokata tiedostoja. Kaikki pyynnöt kulkevat Api.Airforcen kautta.",
      "rooLinkTitle": "Oletko jo määrittänyt Roo Coden?",
      "rooLinkContent": "Kilo Coden konfigurointiskeema on identtinen - kopioi vain Roo Code -palveluntarjoajan asetukset.",
      "rooLinkLabel": "Katso Roo Code -opas"
    },
    "nextchat": {
      "title": "NextChatin asennusopas",
      "subtitle": "Käytä Api.Airforcea OpenAI-päätepisteenä NextChatissa (ChatGPT-Next-Web).",
      "step1Title": "Avaa NextChat-asetukset",
      "step1Content": "Napsauta ⚙-kuvaketta NextChatissa avataksesi Asetukset-paneelin.",
      "step2Title": "Aseta mukautettu OpenAI-päätepiste",
      "step2Content": "Vieritä kohtaan \"Custom Endpoint\" / \"OpenAI\" ja täytä alla olevat arvot. Tallenna asetukset.",
      "step3Title": "Valitse malli",
      "step3Content": "Avaa keskustelun otsikossa mallien pudotusvalikko ja valitse mitkä tahansa nimet, jotka olet lisännyt mukautettuihin malleihin. NextChat lähettää ne sanatarkasti Api.Airforceen.",
      "step4Title": "Aloita chattailu",
      "step4Content": "Kirjoita kehote — NextChat reitittää nyt Api.Airforcen kautta. Striimaus toimii suoraan.",
      "tipsTitle": "Vinkkejä",
      "tip1": "Käytä \"Mukautetut mallit\" -kenttää rekisteröidäksesi kaikki haluamasi ilmavoimien mallit avattavassa luettelossa",
      "tip2": "Jos isännöit NextChatia itse, aseta OPENAI_API_KEY ja BASE_URL env varsin kautta käyttöliittymän sijaan",
      "tip3": "Näkökykyiset mallit (gpt-4o, claude-sonnet-4.6) toimivat kuvaliitteissä"
    },
    "openwebui": {
      "title": "Avaa WebUI-asennusopas",
      "subtitle": "Yhdistä Api.Airforce OpenAI-yhteensopivaksi yhteydeksi Open WebUI:ssa.",
      "step1Title": "Kirjaudu sisään järjestelmänvalvojana",
      "step1Content": "Avaa Open WebUI -esiintymä ja kirjaudu sisään järjestelmänvalvojan tilillä. Ilman järjestelmänvalvojan oikeuksia et voi lisätä uusia yhteyksiä.",
      "step2Title": "Lisää OpenAI API -yhteys",
      "step2Content": "Siirry kohtaan Admin Panel → Settings → Connections → OpenAI API. Napsauta \"+\" lisätäksesi uuden yhteyden ja täytä alla olevat kentät. Tallentaa.",
      "step3Title": "Tarkista mallin nouto",
      "step3Content": "Open WebUI hakee malliluettelon automaattisesti hakemistosta /v1/models. Avaa chat-pudotusvalikko – sinun pitäisi nähdä kaikki Airforce-mallit, joiden etuliitteenä on \"airforce/\".",
      "step4Title": "Aloita chattailu",
      "step4Content": "Valitse malli ja aloita chat. Työkalujen käyttö, visio ja antrooppiset mallit toimivat läpinäkyvästi tämän yhteyden kautta.",
      "tipTitle": "Vihje",
      "tipContent": "Jos haluat käyttää vain Airforcea, poista Ollama-oletusyhteys käytöstä samassa Yhteydet-paneelissa – muuten molemmat taustaohjelmat kilpailevat mallien pudotusvalikosta."
    },
    "risuai": {
      "title": "RisuAI-asennusopas",
      "subtitle": "Käytä Api.Airforcea OpenAI/Anthropic-taustaohjelmana RisuAI:ssa hahmoroolipeleihin.",
      "step1Title": "Avaa RisuAI API -asetukset",
      "step1Content": "Käynnistä RisuAI (verkko tai työpöytä) → Asetukset → API. RisuAI tukee monia taustaohjelmia – käytämme OpenAI-yhteensopivaa.",
      "step2Title": "Määritä OpenAI-yhteensopiva palveluntarjoaja",
      "step2Content": "Valitse palveluntarjoajaksesi \"OpenAI Compatible\" ja täytä alla oleva URL-osoite ja API-avain. Tallentaa.",
      "step3Title": "Valitse roolipeliin viritetty malli",
      "step3Content": "Roolipeliversiot (liite -rp / -speciale) on viritetty hahmodialogia ja luovaa kirjoittamista varten – kirjoita mallin nimi suoraan mallikenttään.",
      "step4Title": "Aloita chat",
      "step4Content": "Avaa tai luo hahmo, valitse persoona ja aloita chattailu. Suoratoisto, regenerointi ja vakio RisuAI -ominaisuudet toimivat kaikki.",
      "recommendedTitle": "Suositeltavat mallit roolipeleihin",
      "recommendedHint": "Nämä versiot on viritetty luovaan kirjoittamiseen ja hahmojen dialogiin.",
      "anthropicTitle": "Haluatko käyttää Claudea alkuperäisesti?",
      "anthropicContent": "RisuAI tukee myös Anthropic-protokollaa. Vaihda palveluntarjoajaksi \"Anthropic\" ja aseta URL-osoitteeksi https://api.airforce (no /v1) – sama API-avain.",
      "anthropicLink": "Lisää RP-asetuksista: SillyTavern-opas"
    },
    "openclaw": {
      "title": "OpenClaw-asennusopas",
      "subtitle": "Osoita itse isännöity OpenClaw-avustajasi Api.Airforceen sen LLM-palveluntarjoajana.",
      "step1Title": "Asenna OpenClaw",
      "step1Content": "Asenna OpenClaw koneellesi (macOS / iOS / Android / Linux) ja suorita ensiasennus loppuun. clawhub CLI:n täytyy olla tielläsi.",
      "step2Title": "Aseta OpenAI-palveluntarjoaja",
      "step2Content": "Suorita kaksi alla olevaa clawhub-komentoa – ne kirjoittavat OpenAI-yhteensopivan palveluntarjoajan merkinnän paikalliseen OpenClaw-kokoonpanoon.",
      "step3Title": "Aseta oletusmalli",
      "step3Content": "Kerro OpenClawille, mitä Airforce-mallia käytetään oletuksena. Valitse mikä tahansa chat-malli – claude-sonnet-4.6 tai gpt-4o ovat hyviä oletuksia.",
      "step4Title": "Käynnistä agentti uudelleen",
      "step4Content": "Käynnistä OpenClaw uudelleen, jotta se poimii uuden palveluntarjoajan konfiguraation. CLI näyttää aktiivisen palveluntarjoajan käynnistyksen yhteydessä - varmista, että se sanoo \"openai (api.airforce)\".",
      "step5Title": "Puhu millä tahansa kanavalla",
      "step5Content": "Lähetä viesti minkä tahansa OpenClawin kanavan kautta (Discord, Telegram, iMessage, Slack…) – vastaukset kulkevat nyt Api.Airforcen kautta.",
      "tipTitle": "Vihje",
      "tipContent": "clawhubin kautta asennetut OpenClaw-taidot käyttävät mitä tahansa agentin määrittämää mallia – oletusmallin vaihtaminen vaikuttaa kaikkiin taitoihin kerralla."
    },
    "hermes": {
      "title": "Hermes Agentin asennusopas",
      "subtitle": "Käytä Api.Airforcea Nous Researchin Hermes Agentin LLM-taustaohjelmana.",
      "step1Title": "Asenna Hermes",
      "step1Content": "Kloonaa NousResearch/hermes-agent ja seuraa README-asennusohjeita. Hermes CLI:n on oltava tielläsi ennen kuin voit jatkaa.",
      "step2Title": "Määritä OpenAI-palveluntarjoaja",
      "step2Content": "Suorita alla oleva hermes config -komento – se kirjoittaa OpenAI-yhteensopivan palveluntarjoajan lohkon, joka osoittaa Api.Airforcea.",
      "step3Title": "Valitse oletusmalli",
      "step3Content": "Hermes vaatii paljon työkaluja, joten valitse malli, jossa on luotettava työkalutuki. claude-sonnet-4.6 on turvallisin oletusarvo.",
      "step4Title": "Yhdistä kanava ja keskustele",
      "step4Content": "Run hermes alkaa käynnistää agentti. Yhdistä kanava (Telegram/Discord/Slack) verkkokäyttöliittymän kautta ja lähetä viesti – Hermes käyttää nyt Api.Airforcea jokaisessa suorituksessa.",
      "recommendedTitle": "Suositeltavat mallit agenteille",
      "recommendedHint": "Kaikki neljä tukevat työkalukutsua. Sonnet 4.6:ssa on luotettavin JSON-lähtö.",
      "tipTitle": "Vihje",
      "tipContent": "Hermes-verkkokäyttöliittymä näyttää käyttöanalytiikkaa malleittain eriteltynä – hyödyllistä havaita, mitkä taidot ovat halpoja vai kalliita."
    },
    "onThisPage": "Tällä sivulla",
    "searchPlaceholder": "Hae asiakirjoja..."
  },
  "footer": {
    "description": "Maailmanlaajuinen portti mihin tahansa kuviteltavissa olevaan malliin. Tehokas välityspalvelin, joka mahdollistaa yhtenäisen pääsyn mille tahansa tekoälyn tarjoajalle.",
    "product": "Tuote",
    "chatPlayground": "Chat-leikkikenttä",
    "imagePlayground": "Kuvaleikkikenttä",
    "pricing": "Hinnoittelu",
    "dashboard": "Kojelauta",
    "legal": "Laillinen",
    "terms": "Palveluehdot",
    "privacy": "Tietosuojakäytäntö",
    "refund": "Hyvityskäytäntö",
    "reviews": "Arvostelut",
    "copyright": "Kaikki oikeudet pidätetään.",
    "status": "Kaikki järjestelmät toimivat",
    "blog": "Blogi",
    "viewAllPosts": "Näytä kaikki viestit",
    "disclaimer": "Api.Airforce on itsenäinen alusta, eikä se ole sidoksissa OpenAI:n, Anthropicin, Googlen, Metan tai mihinkään muuhun tällä sivustolla mainittuun tekoälymallien tarjoajaan, ole niiden tukema tai sponsoroima.",
    "supportEmail": "support@api.airforce"
  },
  "hero": {
    "badge": "Kehittäjät luottavat maailmanlaajuisesti",
    "headline1": "Yksi API.",
    "headline2": "Jokainen AI-malli.",
    "description": "Yhtenäinen portti DeepSeek-, Claude-, Gemini- ja yli 100 malliin.",
    "description2": "Vaihda palveluntarjoajaa yhdellä koodirivillä.",
    "ctaStart": "Aloita ilmaiseksi tänään",
    "ctaDashboard": "Siirry hallintapaneeliin",
    "ctaPlayground": "Kokeile leikkikenttää",
    "scrollText": "Vieritä tutkiaksesi",
    "christmas": {
      "title": "Lomamyynti",
      "discount": "Saat 20% alennuksen koodilla:",
      "code": "CHRISTMAS2025",
      "validity": "Voimassa 24.12.2025 asti"
    },
    "stats": {
      "models": "AI mallit",
      "developers": "Kehittäjät",
      "uptime": "Päällä",
      "latency": "Keskimääräinen viive"
    }
  },
  "features": {
    "badge": "Ominaisuudet",
    "title": "Kaikki mitä tarvitset",
    "titleHighlight": "toimitetaan nopeammin",
    "description": "Suunniteltu kehittäjille, jotka vaativat suorituskykyä, joustavuutta ja luotettavuutta.",
    "items": {
      "api": {
        "title": "Yleinen API-käyttö",
        "description": "Yhdistä OpenAI:hen, Anthropiciin, Googleen ja muihin palveluihin yhden yhdistetyn päätepisteen kautta. Ei enää useiden SDK:iden jongleerausta."
      },
      "streaming": {
        "title": "Salamannopea suoratoisto",
        "description": "Reaaliaikaiset palvelimen lähettämät tapahtumat automaattisella muotomuunnolla. Koe välittömät vastaukset niiden luoessa."
      },
      "multimodal": {
        "title": "Multimodaalinen älykkyys",
        "description": "Teksti, kuvat, koodi - hoida kaikki. Täysi tuki visiomalleille ja kuvan luomiselle yhdessä paikassa."
      },
      "security": {
        "title": "Yritysturvallisuus",
        "description": "Edistynyt nopeuden rajoitus, API-avainten hallinta ja käyttöanalytiikka. Rakennettu tuotantoon missä tahansa mittakaavassa."
      },
      "analytics": {
        "title": "Reaaliaikainen Analytics",
        "description": "Tarkkaile jokaista pyyntöä yksityiskohtaisilla tiedoilla. Seuraa tunnuksia, latenssia ja kustannuksia kaikissa malleissasi."
      },
      "functions": {
        "title": "Toiminto kutsu",
        "description": "Natiivi tuki työkaluille ja toimintokutsuille. Rakenna tehokkaita tekoälyagentteja strukturoiduilla tuloilla."
      }
    }
  },
  "integrations": {
    "eyebrow": "Integraatiot",
    "title": "Toimii suosikkityökalujesi kanssa",
    "description": "Yksi API-avain kaikkeen. Drop-in on yhteensopiva suosituimpien chat- ja kehitystyökalujen kanssa.",
    "worksWith": "Toimii kanssa",
    "viewGuide": "Katso opas",
    "janitor": {
      "description": "Käytä Airforcea mukautettuna sovellusliittymänä JanitorAI:ssa. Yhdistä hahmosi Claudeen, GPT:hen, DeepSeekiin ja muihin."
    },
    "sillytavern": {
      "description": "Aseta Airforce keskustelun täydennyslähteeksi SillyTavernissa. Pääset jokaiseen malliin yhdellä API-avaimella."
    },
    "claudeCode": {
      "description": "Käytä Airforcea Anthropic API-taustaohjelmana Claude Codelle. Aseta kaksi ympäristömuuttujaa ja tavoita jokainen malli."
    },
    "codexCli": {
      "description": "Täysin yhteensopiva OpenAI SDK:n ja Codex CLI:n kanssa. Käytä Airforcea OpenAI-taustaohjelmana koodausagentteillesi."
    }
  },
  "pricing": {
    "badge": "Hinnoittelu",
    "title": "yksinkertainen,",
    "titleHighlight": "läpinäkyvä",
    "titleEnd": "hinnoittelu",
    "description": "Aloita ilmaiseksi, laajenna kasvaessasi. Ei piilokuluja, ei yllätyksiä.",
    "payAsYouGo": {
      "title": "Jatkuvasti:",
      "description": "Jopa 90 % halvempi kuin viralliset palveluntarjoajat",
      "savings": "Säästä jopa 90 %"
    },
    "currency": {
      "eur": "EUR",
      "usd": "USD"
    },
    "billing": {
      "subscription": "Tilaus",
      "onetime": "1 kuukauden lippu",
      "noAutoRenew": "Ei automaattista uusimista"
    },
    "creemSoon": "Creem (pian)",
    "plans": {
      "free": {
        "name": "Ilmainen",
        "price": "0",
        "period": "/kuukausi",
        "description": "Täydellinen testaukseen ja harrastusprojekteihin",
        "cta": "Aloita",
        "features": "1 pyyntö minuutissa, 1 000 pyyntöä päivässä, pääsy perusmalleihin, yhteisön tuki"
      },
      "premium": {
        "name": "Premium",
        "period": "/kuukausi",
        "periodOnetime": "/30 päivää",
        "description": "Kehittäjille ja pienille ryhmille",
        "descriptionOnetime": "Kertamaksu, ei tilausta",
        "cta": "Päivitä nyt",
        "features": "5 pyyntöä minuutissa, 5 000 pyyntöä päivässä, pääsy kaikkiin malleihin*, ensisijainen tuki"
      },
      "master": {
        "name": "Mestari",
        "badge": "SUOSITTUIN",
        "period": "/kuukausi",
        "periodOnetime": "/30 päivää",
        "description": "Suuren volyymin tuotantokäyttöön",
        "descriptionOnetime": "Kertamaksu, ei tilausta",
        "cta": "Päivitä nyt",
        "features": "10 pyyntöä minuutissa, rajoittamaton määrä pyyntöjä päivässä, pääsy kaikkiin malleihin*, omistettu tuki, mukautetut integraatiot"
      },
      "modelsFootnote": "* Premium-mallit (esim. Opus 4.7, roolipeliversiot, Gemini 3 Pro) kuluttavat krediittejä 2×–11× kertoimella"
    }
  },
  "pricingPage": {
    "hero": {
      "eyebrow": "HINNOITTELU",
      "title": "Yksinkertaiset suunnitelmat, jotka mittaavat kanssasi",
      "subtitle": "Aloita ilmaiseksi, päivitä, kun tarvitset lisää hintarajoituksia, lisää malleja tai 30 päivän lippua ilman tilausta."
    },
    "comparison": {
      "title": "Suunnitelmien vertailu",
      "subtitle": "Kaikki, mikä toimitetaan jokaisen tason mukana",
      "feature": "Ominaisuus",
      "rows": {
        "rateLimit": {
          "label": "Hintarajoitus",
          "free": "1/minuutti",
          "premium": "5/minuutti",
          "master": "10/minuutti"
        },
        "dailyCap": {
          "label": "Päivittäinen pyyntöraja",
          "free": "1 000",
          "premium": "5 000",
          "master": "Rajoittamaton"
        },
        "modelAccess": {
          "label": "Mallin käyttöoikeus",
          "free": "Perusmallit",
          "premium": "Kaikki yli 150 mallia",
          "master": "Kaikki yli 150 mallia"
        },
        "multiplier": {
          "label": "Premium-mallin kerroin",
          "free": "—",
          "premium": "2× – 11×",
          "master": "2× – 11×"
        },
        "support": {
          "label": "Tuki",
          "free": "yhteisössä",
          "premium": "Prioriteetti",
          "master": "Omistettu"
        },
        "integrations": {
          "label": "Mukautetut integraatiot",
          "free": "",
          "premium": "",
          "master": ""
        },
        "cancelAnytime": {
          "label": "Peru milloin tahansa",
          "free": "",
          "premium": "",
          "master": ""
        },
        "noAutoRenew": {
          "label": "30 päivän lippu saatavilla",
          "free": "",
          "premium": "",
          "master": ""
        }
      }
    },
    "credits": {
      "title": "Kuinka luottotiedot toimivat",
      "subtitle": "Jokainen pyyntö maksaa krediittejä. Vakiomallit käyttävät 1×, premium-malleissa korkeampi kerroin – suunnitelmasi kuukausihyvitykset kattavat ne samalla kuukausihinnalla.",
      "tiers": {
        "standard": {
          "label": "Vakiomallit",
          "description": "Useimmat chat-mallit, kuvan luominen, äänirajapinnat."
        },
        "premium": {
          "label": "Premium mallit",
          "description": "Kalliimpia malleja (Opus 4.7, roolipeliversiot, Gemini 3 Pro)."
        },
        "frontier": {
          "label": "Frontier mallit",
          "description": "Kalleimmat mallit - huippuluokan visio ja perustelut."
        }
      },
      "example": {
        "title": "Esimerkki",
        "body": "Premium-paketti kattaa ~5 000 pyyntöä / päivä vakiomalleissa, ~ 2 500 / päivä 2 × mallissa tai ~ 450 / päivä 11 × rajamalleissa - samaan kuukausihintaan."
      }
    },
    "modelsLink": {
      "eyebrow": "MALLITTAINEN HINTA",
      "title": "Mallikohtaiset merkkihinnat",
      "description": "Live-hinnoittelu jokaiselle chatille, kuvalle, ääni- ja videomalleille – tulo- ja lähtötunnisteille.",
      "cta": "Selaa kaikkia malleja"
    },
    "faq": {
      "title": "Usein kysytty",
      "subtitle": "Nopeat vastaukset yleisimpiin kysymyksiin",
      "items": {
        "cancel": {
          "q": "Voinko peruuttaa milloin tahansa?",
          "a": "Kyllä. Tilaukset voidaan peruuttaa kojelaudalta tai lähettämällä sähköpostia tukeen – pääsy jatkuu nykyisen laskutuskauden loppuun asti. 30 päivän lippu ei uusiudu automaattisesti, joten mitään peruutettavaa ei ole."
        },
        "creditExpiry": {
          "q": "Mitä tapahtuu luottoille, joita en käytä?",
          "a": "Suunnitelman hyvitykset nollautuvat joka laskutusjakso. Täydennyshyvitykset (ostettu erikseen) siirretään eivätkä vanhene."
        },
        "refund": {
          "q": "Voinko saada hyvityksen?",
          "a": "Tarjoamme hyvityksen 14 päivän kuluessa ostosta, jos olet käyttänyt alle 10 % suunnitelmasi hyvityksistä. Katso täydelliset ehdot palautuskäytännöstämme."
        },
        "downgrade": {
          "q": "Voinko alentaa tai päivittää kesken jakson?",
          "a": "Kyllä. Päivitykset jaetaan välittömästi. Vähennykset tulevat voimaan seuraavalla laskutuskaudella – pidät nykyisen suunnitelmasi siihen asti."
        },
        "premiumModels": {
          "q": "Mitkä mallit lasketaan premiumiksi?",
          "a": "Edistykselliset mallit, kuten Claude Opus 4.7, Gemini 3 Pro, ja roolipeliin viritetyt versiot toimivat 2× – 11× kertoimella. Tarkka mallikohtainen kerroin näkyy /mallit-sivulla kunkin merkinnän vieressä."
        },
        "overage": {
          "q": "Entä jos lainat loppuvat?",
          "a": "Pyynnöt hylätään selkeällä kiintiövirheellä – emme koskaan laskuta hiljaa yli suunnitelmasi. Voit lisätä krediittejä vaihtamatta tilaustasi tai päivittää seuraavalle tasolle."
        }
      }
    },
    "cta": {
      "title": "Oletko valmis rakentamaan?",
      "subtitle": "Ilmainen käynnistys, päivitä vain, kun tarvitset lisää.",
      "primary": "Luo ilmainen tili",
      "primaryLoggedIn": "Avaa kojelauta",
      "secondary": "Lue dokumentit"
    }
  },
  "cta": {
    "title": "Valmiina rakentamaan",
    "titleHighlight": "tulevaisuutta",
    "titleEnd": "?",
    "description": "Liity tuhansien kehittäjien joukkoon, jotka rakentavat seuraavan sukupolven tekoälysovelluksia.",
    "button": "Luo ilmainen tili",
    "buttonLoggedIn": "Siirry hallintapaneeliin"
  },
  "payment": {
    "title": "Tuetut suojatut maksut"
  },
  "login": {
    "title": "Tervetuloa takaisin",
    "subtitle": "Kirjaudu sisään päästäksesi hallintapaneeliin ja jatkaaksesi rakentamista",
    "username": "Käyttäjätunnus",
    "usernamePlaceholder": "Kirjoita käyttäjänimesi",
    "password": "Salasana",
    "passwordPlaceholder": "Kirjoita salasanasi",
    "signIn": "Kirjaudu sisään",
    "signingIn": "Kirjaudutaan sisään...",
    "noAccount": "Eikö sinulla ole tiliä?",
    "createOne": "Luo sellainen ilmaiseksi",
    "secureLogin": "Suojattu sisäänkirjautuminen",
    "uptime": "99,9 % käyttöaika",
    "welcomeBack": "Tervetuloa takaisin",
    "futureOfAI": "AI:n tulevaisuus",
    "accessModels": "Käytä 65+ AI-mallia yhden yhdistetyn API:n kautta. Kirjaudu sisään jatkaaksesi upeiden asioiden rakentamista.",
    "universalAccess": "Universaali pääsy kaikille suurille tekoälyn tarjoajille",
    "lightningFast": "Salamannopeat vasteajat",
    "enterpriseSecurity": "Yritystason tietoturva",
    "simpleAPI": "Yksinkertainen, johdonmukainen API-liittymä",
    "showPassword": "Näytä salasana",
    "hidePassword": "Piilota salasana",
    "forgotPassword": "Unohditko salasanan?",
    "resetPassword": "Palauta salasana",
    "verifyResetToken": "Vahvista palautustunnus",
    "enterEmailForReset": "Kirjoita sähköpostiosoitteesi saadaksesi salasanan palautuslinkin.",
    "enterTokenAndNewPassword": "Tarkista sähköpostistasi palautustunnus ja kirjoita se alle uuden salasanasi kanssa.",
    "email": "Sähköposti",
    "resetToken": "Nollaa tunnus",
    "tokenPlaceholder": "Anna nollaustunnus",
    "newPassword": "Uusi salasana",
    "newPasswordPlaceholder": "Syötä uusi salasana",
    "sendResetLink": "Lähetä nollauslinkki",
    "resetPasswordAction": "Palauta salasana",
    "resetEmailSent": "Jos kyseisellä sähköpostilla on tili, palautuslinkki on lähetetty.",
    "passwordResetSuccess": "Salasanan palautus onnistui! Voit nyt kirjautua sisään.",
    "continueWithGoogle": "Jatka Googlella",
    "continueWithDiscord": "Jatka Discordilla",
    "errors": {
      "unknown": "Tapahtui tuntematon virhe",
      "completeCaptcha": "Suorita captcha-vahvistus"
    },
    "tfa": {
      "title": "Kaksivaiheinen todennus",
      "enterBackup": "Anna jokin varakoodeistasi.",
      "enterAuth": "Syötä 6-numeroinen koodi todennussovelluksesta.",
      "backupLabel": "Varakoodi",
      "authLabel": "Authenticator-koodi",
      "verifyButton": "Vahvista",
      "useAuth": "Käytä todennuskoodia",
      "useBackup": "Käytä varakoodia",
      "cancel": "Peruuta",
      "invalidCode": "Virheellinen koodi"
    },
    "verify": {
      "title": "Vahvista sähköpostiosoitteesi",
      "intro": "Napsauta linkkiä, johon lähetimme",
      "yourEmail": "sähköpostiosoitteesi",
      "toActivate": "aktivoidaksesi tilisi.",
      "resendIn": "Uudelleenlähetys saatavilla {n} sekunnissa",
      "emailSent": "Sähköposti lähetetty – tarkista postilaatikkosi",
      "resendVerification": "Lähetä vahvistussähköposti uudelleen",
      "backToLogin": "Takaisin kirjautumiseen"
    }
  },
  "signup": {
    "title": "Luo tili",
    "subtitle": "Aloita rakentaminen yli 65 tekoälymallilla jo tänään",
    "username": "Käyttäjätunnus",
    "usernamePlaceholder": "Valitse käyttäjätunnus",
    "password": "Salasana",
    "passwordPlaceholder": "Luo vahva salasana",
    "confirmPassword": "Vahvista salasana",
    "confirmPasswordPlaceholder": "Vahvista salasanasi",
    "createAccount": "Luo ilmainen tili",
    "creatingAccount": "Luodaan tiliä...",
    "haveAccount": "Onko sinulla jo tili?",
    "signInLink": "Kirjaudu sisään",
    "agreeToTerms": "Rekisteröitymällä hyväksyt meidän",
    "termsOfService": "Palveluehdot",
    "and": "ja",
    "privacyPolicy": "Tietosuojakäytäntö",
    "passwordStrength": {
      "tooShort": "Liian lyhyt",
      "weak": "Heikko",
      "fair": "Reilu",
      "good": "Hyvä",
      "strong": "Vahva"
    },
    "passwordsMatch": "Salasanat vastaavat",
    "errors": {
      "passwordsDontMatch": "Salasanat eivät täsmää",
      "passwordTooShort": "Salasanan tulee olla vähintään 8 merkkiä pitkä",
      "emailRequired": "Sähköposti vaaditaan",
      "emailInvalid": "Anna kelvollinen sähköpostiosoite",
      "unknown": "Tapahtui tuntematon virhe",
      "completeCaptcha": "Suorita captcha-vahvistus",
      "signupGateBlocked": "Emme voineet suorittaa rekisteröitymistäsi tästä verkosta juuri nyt. Jos uskot tämän olevan virhe, ota yhteyttä osoitteeseen support@api.airforce tai liity Discordiin osoitteessa https://discord.gg/airforce."
    },
    "startBuilding": "Aloita rakentaminen",
    "aiToday": "AI tänään",
    "joinDevelopers": "Liity kehittäjiin käyttämällä tehokkainta yhdistettyä AI API -alustaa.",
    "benefits": {
      "freeToStart": {
        "title": "Ilmainen aloittaa",
        "description": "1000 ilmaista pyyntöä päivässä. Luottokorttia ei vaadita."
      },
      "instantAccess": {
        "title": "Välitön pääsy",
        "description": "Hanki API-avain välittömästi ja aloita rakentaminen."
      },
      "aiModels": {
        "title": "65+ AI-mallia",
        "description": "Käytä GPT-4, Claude, Gemini, DeepSeek ja paljon muuta."
      },
      "enterpriseSecurity": {
        "title": "Yritysturvallisuus",
        "description": "Salatut tiedot yritystason tietoturvastandardeilla."
      }
    },
    "email": "Sähköposti",
    "emailPlaceholder": "sinä@esimerkki.fi",
    "continueWithGoogle": "Rekisteröidy Googlella",
    "continueWithDiscord": "Rekisteröidy Discordilla",
    "verify": {
      "title": "Tarkista postilaatikkosi",
      "intro": "Olemme lähettäneet vahvistuslinkin osoitteeseen",
      "yourEmail": "sähköpostiosoitteesi",
      "clickLink": "Napsauta sähköpostissa olevaa linkkiä aktivoidaksesi tilisi.",
      "expires": "Linkki vanhenee 24 tunnin kuluttua. Tarkista roskapostikansiosi, jos et näe sitä.",
      "didntGet": "Etkö saanut sähköpostia?",
      "resendIn": "Uudelleenlähetys saatavilla {n} sekunnissa",
      "emailSent": "Sähköposti lähetetty – tarkista postilaatikkosi",
      "resendVerification": "Lähetä vahvistussähköposti uudelleen",
      "backToLogin": "Takaisin kirjautumiseen"
    }
  },
  "verify": {
    "title": "Avaa ilmainen taso",
    "subtitle": "Valitse yksi alla olevista vaihtoehdoista. Googlen linkittäminen on nopein tie. Discord vaatii puhelimella vahvistetun tilin.",
    "alreadyVerified": "Tilisi on vahvistettu",
    "alreadyVerifiedSub": "Voit käyttää kaikkea api.airforcessa.",
    "backToDashboard": "Takaisin kojelautaan",
    "discordLinkedPostInChannel": "Ristiriita linkitetty. Viimeinen vaihe – lähetä mikä tahansa viesti vahvistuskanavaamme, niin sinut vahvistetaan muutamassa sekunnissa.",
    "linked": "Linkitetty",
    "notLinked": "Ei linkitetty",
    "verified": "Vahvistettu",
    "google": {
      "title": "Linkitä Google",
      "body": "Yksi napsautus. Avaa ilmaisen tason välittömästi.",
      "linkedAs": "Linkitetty nimellä",
      "linkButton": "Linkitä Google"
    },
    "discord": {
      "title": "Varmista Discordilla",
      "body": "Edellyttää puhelimella vahvistetun Discord-tilin. Kaksi vaihetta: linkitä ja lähetä sitten vahvistuskanavaamme.",
      "linkedAs": "Linkitetty nimellä",
      "linkedNotVerified": "Linkitetty, ei vahvistettu",
      "step1": "Avaa vahvistuspalvelimemme",
      "step2": "Lähetä mikä tahansa viesti #verify-täällä",
      "step3": "Tämä sivu päivittyy automaattisesti, kun sinut on vahvistettu.",
      "openInvite": "avoin kutsu",
      "linkButton": "Linkitä Discord",
      "openVerifyChannel": "Avaa vahvistuskanava"
    },
    "pay": {
      "title": "Osta krediittejä tai tilaus",
      "body": "Yksittäinen minkä tahansa summan maksu vapauttaa ilmaisen tason pysyvästi – jopa sen jälkeen, kun tilausi vanhenee tai krediitit loppuvat.",
      "paid": "Maksettu",
      "notPaid": "Ei vielä maksuja",
      "upgradeButton": "Päivitä"
    },
    "statusCard": {
      "titleVerified": "Tili vahvistettu",
      "titleNotVerified": "Vahvista tilisi",
      "descVerified": "Ilmaistaso ja ilmaiset mallit ovat käytössäsi.",
      "descNotVerified": "Liitä OAuth-tarjoaja tai vahvista puhelinnumerosi Discordissa avataksesi ilmaistason.",
      "badgeVerified": "Vahvistettu",
      "badgeNotVerified": "Ei vahvistettu",
      "payment": "Maksu",
      "paymentDone": "Vahvistettu",
      "discord": {
        "phoneVerified": "Puhelin vahvistettu",
        "linkedNoPhone": "Liitetty, puhelinnumeroa ei vahvistettu",
        "openInvite": "Avaa kutsu"
      },
      "cta": {
        "hint": "Kestää vain hetken.",
        "button": "Vahvista nyt"
      },
      "menuItem": {
        "notVerified": "Vahvista tili"
      }
    },
    "warmReady": "Tilisi on täysin käytössä — ei muuta tehtävää.",
    "goToDashboard": "Siirry koontinäyttöön",
    "github": {
      "title": "Yhdistä GitHub",
      "body": "Yksi klikkaus. Avaa ilmaisversion välittömästi.",
      "linkedAs": "Liitetty nimellä",
      "linkButton": "Yhdistä GitHub"
    }
  },
  "apiError": {
    "freeTierGated": {
      "title": "Vapaa taso lukittu",
      "body": "Vahvista tilisi käyttääksesi ilmaista tasoa.",
      "cta": "Vahvista nyt"
    }
  },
  "dashboard": {
    "title": "Kojelauta",
    "back": "Takaisin",
    "welcome": "Tervetuloa takaisin, {username}",
    "overview": "Tässä on yleiskatsaus API:n käyttöön ja asetuksiin.",
    "loadingDashboard": "Ladataan hallintapaneelia...",
    "coldBanner": {
      "title": "Vapaa taso lukittu",
      "body": "Vahvista tilisi Googlessa tai puhelimella vahvistetussa Discordissa tai osta krediittejä käyttääksesi ilmaista tasoa.",
      "cta": "Vahvista nyt"
    },
    "dailyUsage": "Päivittäinen käyttö",
    "requestsOf": "{current} / {limit} pyyntöä",
    "percentUsed": "{percent} % käytetty",
    "stats": {
      "requestsToday": "Pyynnöt tänään",
      "tokensToday": "Tokenit tänään",
      "imagesGenerated": "Kuvat luotu",
      "currentPlan": "Nykyinen suunnitelma",
      "ofDaily": "{limit} päivittäin",
      "unlimited": "Rajoittamaton",
      "lifetime": "{count} käyttöikä",
      "upgradeForMore": "Päivitä saadaksesi lisää",
      "activeSubscription": "Aktiivinen tilaus",
      "expired": "Vanhentunut",
      "expiresToday": "Vanhenee tänään",
      "balance": "Tasapaino",
      "plan": "Suunnittele",
      "noneEnabled": "mikään ei ole vielä käytössä",
      "enabled": "käytössä",
      "upgradeHint": "ilmainen · päivitys",
      "limit": "raja",
      "runwayUnlimited": "~rajaton",
      "runwayYears": "vuoden kiitorata",
      "runwayMonths": "mo. kiitorata",
      "runwayDays": "päivän kiitorata",
      "tokensIn": "sisään",
      "tokensOut": "ulos"
    },
    "nav": {
      "menu": "Valikko",
      "configuration": "Kokoonpano",
      "account": "Tili",
      "modelsBrowser": "Mallit",
      "products": "Leikkikentät",
      "chatPlayground": "Chat-leikkikenttä",
      "imagePlayground": "Kuvaleikkikenttä",
      "videoPlayground": "Videoleikkikenttä",
      "musicPlayground": "Musiikkileikkikenttä",
      "ttsPlayground": "TTS-leikkikenttä",
      "sfxPlayground": "Äänitehosteet",
      "transcriptionPlayground": "Puhe tekstiksi",
      "voiceOverPlayground": "Ääniselostukset",
      "audioToolsPlayground": "Äänityökalut",
      "audiobookPlayground": "Äänikirjat",
      "podcastPlayground": "Podcastit",
      "dubbingPlayground": "Dubbaus",
      "voiceLibrary": "Äänikirjasto",
      "playgroundHub": "Leikkikentät"
    },
    "impersonate": {
      "banner": "Näytetään käyttäjänä {username} – tekemäsi muutokset ovat tämän käyttäjän nimiä.",
      "close": "Sulje"
    },
    "tabs": {
      "overview": "Yleiskatsaus",
      "apiKeys": "API-avaimet",
      "customModels": "Mukautetut mallit",
      "aliases": "Mallin kartoitus",
      "smartRouting": "Älykäs reititys",
      "usageLog": "Käyttöloki",
      "analytics": "Analytiikka",
      "billing": "Laskutus",
      "profile": "Profiili",
      "admin": "Ylläpito",
      "referrals": "Ilmaiset krediitit / suositus",
      "security": "Turvallisuus",
      "modelDefaults": "Malliasetukset",
      "priceCaps": "Hintarajat"
    },
    "quickActions": {
      "viewApiKey": "Tarkastele ja hallinnoi API-avainta",
      "manageBilling": "Hallinnoi tilausta ja laskutusta",
      "earnCredits": "Kutsu ystäviä, ansaitse krediittejä"
    },
    "aliases": {
      "title": "Mallin kartoitus",
      "description": "Yhdistä mukautettujen mallien nimet todellisiin API-malleihin. Käytä aliaksia API-pyynnöissä, Claude Codessa tai missä tahansa koodausagentissa.",
      "addNew": "Lisää kartoitus",
      "aliasPlaceholder": "esim. claude-sonnet-4-20250514",
      "modelPlaceholder": "esim. claude-sonetti-4.6",
      "add": "Lisää",
      "added": "Kartoitus lisätty",
      "updated": "Kartta päivitetty",
      "deleted": "Kartoitus poistettu",
      "current": "Nykyiset kartoitukset",
      "noAliases": "Ei vielä kartoituksia",
      "noAliasesHint": "Aloita lisäämällä yllä oleva kartta",
      "usage": "Käyttöesimerkki",
      "usageHint": "Alias määritetään kohdemalliin automaattisesti.",
      "presets": "Pika-esiasetukset",
      "presetsDescription": "Lataa esikonfiguroidut kartoitukset suosituille koodausagenteille. Vain puuttuvat kartoitukset lisätään.",
      "presetMappings": "kartoituksia",
      "presetActive": "Aktiivinen",
      "presetAlreadyApplied": "Kaikki tämän esiasetuksen kartoitukset ovat jo olemassa",
      "presetApplied": "Kartoitukset lisätty onnistuneesti",
      "deleteTitle": "Poista kartoitus",
      "deleteConfirm": "Haluatko varmasti poistaa tämän kartoituksen?",
      "cancel": "Peruuta",
      "delete": "Poista",
      "searchModels": "Hae malleja...",
      "customGroup": "Mukautettu"
    },
    "smartRouting": {
      "description": "Määritä omat malliryhmän aliakset. Kun pyydät ryhmän nimeä, käytetään ensimmäistä saatavilla olevaa mallia prioriteettiluettelostasi.",
      "newGroupKey": "Uusi ryhmäavain (esim. my-claude)",
      "add": "Lisää",
      "save": "Tallenna",
      "saved": "Tallennettu",
      "noGroups": "Ei vielä henkilökohtaisia ryhmiä. Lisää yksi yläpuolelle.",
      "priority": "Prioriteetti (ylä ensin)",
      "addVariant": "Lisää muunnelma…",
      "noVariants": "Ei vielä variantteja.",
      "globalRouting": "Maailmanlaajuinen älykäs reititys (vain luku)",
      "keyExists": "Avain on jo käytössä",
      "keyCollision": "Törmää olemassa olevan mallinimen kanssa",
      "maxGroups": "Enintään 10 ryhmää sallittu"
    },
    "analytics": {
      "totalSpent": "Yhteensä käytetty",
      "totalRequests": "Pyyntöjä yhteensä",
      "totalTokens": "Tokeneja yhteensä",
      "modelsUsed": "Käytetyt mallit",
      "costDistribution": "Kustannusten jakautuminen",
      "tokenUsage": "Tokenin käyttö",
      "requestCount": "Pyyntöjen määrä",
      "modelBreakdown": "Mallin yleiskatsaus",
      "costByModel": "Hinta mallin mukaan",
      "modelDetails": "Mallin tiedot",
      "viewAll": "Näytä kaikki",
      "noData": "Ei vielä käyttötietoja",
      "searchModels": "Hae malleja...",
      "title": "Analytiikka",
      "modelsLabel": "Mallit",
      "toStandard": "Yleiskatsaus",
      "compare": "Vertaa",
      "kpiRequests": "Pyynnöt",
      "kpiCost": "Kustannukset",
      "kpiModels": "Mallit",
      "requestsPerDay": "Pyyntöjä päivässä",
      "stackedByProvider": "palveluntarjoajan pinoama",
      "activityHeatmap": "Toiminta · Tunti × päivä",
      "modelUsage": "Mallin käyttö",
      "bestRatio": "Paras hinta-laatusuhde",
      "perKTokens": "per 1k tokeneja",
      "p50Latency": "P50 latenssi",
      "errorRate": "Virheiden määrä",
      "costVsLatency": "Kustannukset vs latenssi",
      "bubbleHint": "Bubble = pyynnöt · Alempi vasen = paras yhdistelmä",
      "xAxisLabel": "→ kalliimpi 1k tokeneja kohden",
      "yAxisLabel": "↑ hitaampi",
      "latencyRanking": "Latenssiluokitus",
      "efficiencyScore": "Tehokkuuspisteet · Tokeneita per $",
      "peakLabel": "Huippu",
      "noActivity": "Ei toimintaa",
      "noRequests": "Ei pyyntöjä vielä",
      "notEnoughData": "Ei tarpeeksi tietoa tehokkuuden vertailuun",
      "minSamples": "Tarvitset vähintään 5 pyyntöä mallia kohden.",
      "showAll": "näytä kaikki {n}",
      "showLess": "↑ näytä vähemmän",
      "top8": "Top 8",
      "allN": "Kaikki {n}",
      "vsPrevious": "vs edellinen",
      "tabs": {
        "totalUsage": "Kokonaiskäyttö",
        "tokenUsage": "Tokenin käyttö",
        "requests": "Pyynnöt"
      },
      "empty": {
        "title": "Ei vielä dataa",
        "subtitle": "Kun olet lähettänyt ensimmäisen pyyntösi, mallikohtaiset käyttötilastot näkyvät täällä.",
        "cta": "Aloita leikkikentällä"
      },
      "providersLabel": "Palveluntarjoaja",
      "applyRange": "Käytä",
      "preset24h": "24h",
      "preset7d": "7d",
      "preset30d": "30p",
      "preset90d": "90d",
      "noDataHint": "Tee muutama API-kutsu, niin ne näkyvät täällä.",
      "inputTokens": "Syötetokenit",
      "outputTokens": "Tulostustunnukset",
      "vsPrev": "vs edellinen",
      "perRequest": "pyynnöstä",
      "inputRatio": "Syöttösuhde",
      "hourSuffix": "h",
      "tooltipFromDays": "{n}× päivästä alkaen",
      "tooltipNoActivity": "ei toimintaa",
      "topN": "Parhaat {n}",
      "showAllN": "näytä kaikki {n} →",
      "colModel": "Malli",
      "colRequests": "Pyynnöt",
      "colTokens": "Tokenit",
      "colTrend": "14d trendi",
      "colLatency": "Latenssi",
      "colError": "Virhe",
      "colCost": "Kustannukset",
      "eff2": "#2 TEHOKKUUS",
      "eff3": "#3 TEHOKKUUS",
      "notEnoughEff": "Ei tarpeeksi tietoa tehokkuuden vertailuun",
      "needSamples": "Tarvitset vähintään 5 pyyntöä mallia kohden.",
      "per1kTokens": "per 1k tokeneja",
      "noDataPlot": "Ei dataa piirrettäväksi",
      "xAxisCost": "→ kalliimpi per 1k tokeneja",
      "yAxisLatency": "↑ hitaampi",
      "noDataShort": "Ei dataa",
      "requestsPerDayTitle": "Pyyntöjä päivässä",
      "requestsPerDaySub": "pinottu palveluntarjoajan mukaan",
      "noActivityTitle": "Ei aktiviteettia"
    },
    "usageLog": {
      "title": "Käyttölokit",
      "heading": "Käyttölokit",
      "description": "Tarkastele API-pyyntöhistoriaasi, tunnuksen käyttöä ja kustannustietoja.",
      "time": "Aika",
      "type": "Kirjoita",
      "model": "Malli",
      "input": "Syöte",
      "output": "Lähtö",
      "tokens": "Tokenit",
      "totalTokens": "Tokeneja yhteensä",
      "cost": "Kustannukset",
      "totalRequests": "Yhteensä",
      "totalCost": "Kustannukset",
      "creditsUsed": "Käytetyt krediitit",
      "filterModel": "Suodata mallin mukaan...",
      "filter": "Suodata",
      "reset": "Nollaa",
      "allTypes": "Kaikki tyypit",
      "typeUsage": "Käyttö",
      "typeError": "Virhe",
      "timeFirst": "Aika / Ensimmäinen",
      "duration": "Kesto",
      "timeToFirst": "Aika ensin",
      "noStream": "Ei Streamia",
      "apiKey": "API-avain",
      "primaryKey": "Ensisijainen",
      "errorDetails": "Virheen tiedot",
      "noData": "Ei vielä käyttötietoja",
      "download": "Lataa",
      "downloading": "Ladataan",
      "downloadEmpty": "Ei pyyntöjä valitulla alueella",
      "downloadReady": "Vienti valmis",
      "downloadFailed": "Vienti epäonnistui",
      "headingTitle": "Käyttöloki",
      "requestsCount": "{count} pyyntöä",
      "descriptionLong": "API-pyynnöt, tokenit ja kustannukset pyyntökohtaisesti.",
      "tfToday": "Tänään",
      "tf24h": "24h",
      "tf7d": "7d",
      "tf30d": "30p",
      "tfCustom": "Mukautettu",
      "searchPlaceholder": "Haku: model:claude error:429...",
      "btnFilter": "Suodata",
      "btnExport": "Vie",
      "dateFrom": "Alkaen",
      "dateTo": "asti",
      "statusAll": "Kaikki",
      "statusSuccess": "Onnistui",
      "statusError": "Virhe",
      "emptyTimeframe": "Ei pyyntöjä valitun ajanjakson aikana",
      "pageOf": "Sivu {page} / {total} · {count} yhteensä",
      "pickRequest": "Valitse pyyntö luettelosta",
      "fallbackError": "Virhe",
      "statInput": "Syöte",
      "statOutput": "Tulos",
      "statLatency": "Viive",
      "statCost": "Kustannus",
      "wordsApprox": "~{count} sanaa",
      "btnAnalyze": "Näytä Analyticsissa",
      "timingTitle": "Ajoitus vesiputous",
      "timingTotal": "Yhteensä: {duration}",
      "cacheTitle": "Nopea välimuisti",
      "cacheSupported": "Tuettu",
      "cacheHitRate": "Osumaprosentti",
      "cacheSavings": "Säästöjä",
      "cacheVsFresh": "verrattuna välimuistittomaan hintaan",
      "metaTitle": "Metatiedot",
      "metaEndpoint": "Päätepiste",
      "metaStream": "Striimaa",
      "metaModel": "Malli",
      "metaTokens": "Tokenit",
      "metaTimestamp": "Aikaleima",
      "metaError": "Virhe",
      "exportNoData": "Ei tietoja valitulla aikavälillä",
      "exportSuccess": "{count} riviä viety",
      "exportFailed": "Vienti epäonnistui"
    },
    "referrals": {
      "title": "Suositusohjelma",
      "yourCode": "Viittauslinkkisi",
      "copy": "Kopioi",
      "copied": "Kopioitu leikepöydälle",
      "referredUsers": "Suositellut käyttäjät",
      "totalReferred": "Viitattuja käyttäjiä yhteensä",
      "noUsers": "Et ole vielä viitannut yhtään käyttäjää.",
      "rewards": {
        "title": "Suosittelupalkinnot",
        "forFriends": "Ystävillesi",
        "description1": "Saat 10 % jokaisesta kutsuttujen käyttäjien tekemästä luottoostoksesta.",
        "description2": "Jokainen kutsuttu käyttäjä saa yhden päivän ilmaista Airforce Premiumia."
      }
    },
    "profile": {
      "title": "Profiilin asetukset",
      "description": "Hallinnoi tilisi tietoja ja salasanaa.",
      "username": "Käyttäjätunnus",
      "usernamePlaceholder": "Anna käyttäjänimi",
      "email": "Sähköpostiosoite",
      "emailPlaceholder": "Anna sähköpostiosoite",
      "emailHelp": "Käytämme tätä tilin palauttamiseen.",
      "newPassword": "Uusi salasana",
      "passwordPlaceholder": "Jätä tyhjäksi pitääksesi ajan tasalla",
      "confirmPassword": "Vahvista uusi salasana",
      "confirmPasswordPlaceholder": "Vahvista uusi salasana",
      "saveChanges": "Tallenna muutokset",
      "passwordsDoNotMatch": "Salasanat eivät täsmää",
      "passwordTooShort": "Salasanan tulee olla vähintään 6 merkkiä pitkä",
      "noChanges": "Ei muutoksia tehty",
      "updateSuccess": "Profiilin päivitys onnistui",
      "updateFailed": "Profiilin päivitys epäonnistui",
      "noEmail": "Sähköpostia ei ole asetettu",
      "memberSince": "Jäsen vuodesta",
      "lastLogin": "Viimeisin kirjautuminen",
      "changePassword": "Vaihda salasana",
      "twoFactor": {
        "title": "Kaksivaiheinen todennus",
        "activeDescription": "Tilisi on suojattu todennussovelluksella. Hallinnoi koodejasi tai poista 2FA käytöstä.",
        "inactiveDescription": "Lisää ylimääräinen suojaustaso autentikointisovelluksella (Google Authenticator, Authy, 1Password,…).",
        "active": "Aktiivinen",
        "inactive": "Ei käytössä",
        "setup": "Aseta 2FA",
        "manage": "Hallinnoi 2FA:ta"
      },
      "connectedAccounts": {
        "title": "Liitetyt tilit",
        "description": "Liitä Google, GitHub tai Discord nopeampaa kirjautumista varten ja avaa ilmaistaso.",
        "linkedAs": "Liitetty nimellä",
        "connected": "Connected",
        "notConnected": "Ei liitetty",
        "connect": "Yhdistä",
        "unlink": "Irrota",
        "cancel": "Peruuta",
        "unlinkConfirmTitle": "Irrotetaanko {provider}?",
        "unlinkConfirmDesc": "Et voi enää kirjautua sisään {provider}-tilillä. Voit liittää uudelleen milloin tahansa.",
        "unlinkSuccess": "Irrotettu.",
        "lastMethodHint": "Aseta salasana tai liitä toinen tarjoaja ennen tämän irrottamista.",
        "lastMethodError": "Et voi poistaa ainoaa jäljellä olevaa kirjautumistapaa."
      }
    },
    "warnings": {
      "noEmailTitle": "Sähköpostiosoite puuttuu",
      "noEmailDescription": "Lisää sähköpostiosoite profiiliisi varmistaaksesi, että voit palauttaa tilisi, jos menetät käyttöoikeuden.",
      "addEmailAction": "Lisää sähköpostiosoite",
      "usageWarning": "Korkean käytön varoitus",
      "usageBlocked": "Suunnitelman käyttöraja saavutettu",
      "refillStarting": "Alkaen kassalle…",
      "refillNow": "Täyttösuunnitelma nyt",
      "refillHint": "Kertamaksu, nollaa kuukausittaisen luottobudjettisi välittömästi. Tilaus pysyy aktiivisena."
    },
    "apiKey": {
      "title": "API-avaimesi",
      "subtitle": "Käytä tätä avainta pyyntösi todentamiseen. Pidä se salassa!",
      "copy": "Kopioi",
      "copied": "Kopioitu",
      "securityNotice": "Turvallisuusilmoitus",
      "securityWarning": "Älä koskaan jaa API-avainta julkisesti tai siirrä sitä versionhallintaan. Käsittele sitä kuin salasanaa.",
      "quickStart": "Pika-aloitus",
      "secondaryKeys": "Toissijaiset API-avaimet",
      "createKey": "Luo uusi avain",
      "noKeys": "Toissijaisia API-avaimia ei löytynyt",
      "noKeysDesc": "Luo yksi hallitaksesi tiettyjä rajoja eri sovelluksille.",
      "label": "Tunniste",
      "rpmLimit": "RPM-rajoitus",
      "creditAllowance": "Luottokorvaus",
      "creditsUsed": "Käytetyt krediitit",
      "deleteKey": "Poista API-avain",
      "deleteKeyConfirm": "Haluatko varmasti poistaa avaimen \"{label}\"? Tätä toimintoa ei voi kumota.",
      "editKey": "Muokkaa API-avainta",
      "createKeyTitle": "Luo toissijainen API-avain",
      "createKeyDesc": "Aseta tälle avaimelle nimiö ja erityiset rajat.",
      "primary": "Ensisijainen",
      "billingTier": "Laskutustaso",
      "tierDescription": "Määrittää, käyttääkö tämä avain suunnitelman hintarajoja vai jako-saldoa.",
      "tierDefault": "Oletus",
      "tierDefaultDesc": "Käyttää tiliasetuksia",
      "tierPremium": "Vain Premium",
      "tierPremiumDesc": "Vain suunnitelman rajoitukset, ei P2G:tä",
      "tierPaygo": "Käytön mukaan",
      "tierPaygoDesc": "Vain P2G-saldo",
      "modelFilter": "Mallin suodatin",
      "modelFilterDesc": "Rajoita, mitä malleja voidaan käyttää tällä avaimella.",
      "allModels": "Kaikki mallit",
      "selectedModels": "Vain valitut mallit",
      "searchModels": "Hae malleja...",
      "modelsSelected": "valittuja malleja",
      "resetSuccess": "API-avaimen nollaus onnistui",
      "resetFailed": "API-avaimen nollaaminen epäonnistui",
      "resetError": "API-avainta nollattaessa tapahtui virhe",
      "createFailed": "API-avaimen luominen epäonnistui",
      "updateFailed": "API-avaimen päivittäminen epäonnistui",
      "deleteFailed": "API-avaimen poistaminen epäonnistui",
      "genericError": "Tapahtui virhe",
      "createSuccess": "API-avain luotiin onnistuneesti",
      "deleteConfirm": "Haluatko varmasti poistaa avaimen \"{label}\"?",
      "deleteSuccess": "API-avain poistettu onnistuneesti",
      "noSecondaryKeys": "Toissijaisia API-avaimia ei löytynyt",
      "updateSuccess": "API-avain päivitetty onnistuneesti",
      "noModelsFound": "Malleja ei löytynyt",
      "heading": "API-avaimet",
      "subheading": "Hallitse avaimia ja oikeuksia",
      "newKey": "Uusi avain",
      "searchPlaceholder": "Hakuavaimet...",
      "primaryKey": "Ensisijainen avain",
      "primaryBadge": "ENSISIJAINEN",
      "fullAccess": "Täysi pääsy",
      "fullAccessAllN": "Täysi käyttöoikeus · kaikki {count} mallit",
      "restricted": "Rajoitettu",
      "restrictedN": "Rajoitettu · {count} mallia",
      "requestsLabel": "pyyntöjä",
      "noResults": "Ei osumia",
      "anotherPerProject": "Toinen avain projektia kohti",
      "create": "Luo",
      "keysOfMax": "{count} / {max} avaimet",
      "planLabel": "Suunnitelma:",
      "metaCreated": "Luotu — · Viimeksi käytetty: ei koskaan",
      "edit": "Muokkaa",
      "delete": "Poista",
      "cancel": "Peruuta",
      "reset": "Palauta",
      "resetConfirmTitle": "Oletko aivan varma?",
      "resetConfirmDesc": "Nykyinen ensisijainen avain raukeaa välittömästi – saat uuden.",
      "confirmReset": "Kyllä, palauta",
      "sectionKey": "KEY",
      "hide": "Piilota",
      "show": "Näytä",
      "statRequestsToday": "Pyyntöjä tänään",
      "statTokensToday": "Tokeneja tänään",
      "statCostToday": "Kustannukset tänään",
      "statErrorRate": "Virhetaso",
      "statPercentOfLimit": "0 % rajasta",
      "statErrorOf": "0/0",
      "sectionPermsLimits": "KULUT JA RAJAT",
      "scope": "Laajuus",
      "rateLimit": "Nopeusraja",
      "ipWhitelist": "IP-sallittujen lista",
      "sectionQuickstart": "PIKAALOITUS TÄMÄN AVAIN",
      "copiedShort": "kopioitu",
      "copyShort": "copy",
      "dangerResetTitle": "Reset-avain",
      "dangerResetDesc": "Luo uuden avaimen – vanha mitätöidään välittömästi.",
      "performReset": "Suorita nollaus",
      "createDialogDesc": "Aseta otsikko ja rajat – esikatselu oikealla.",
      "freePlanWarning": "Ilmainen paketti: 1 pyyntö/min, 1 000/päivä, ei saldoa. Toinen avain on tässä lähinnä käyttöoikeuksien erottamiseen. Valitse Pay-as-you-Go ja lisää saldoa suurempia rajoja varten.",
      "placeholderLabel": "esim. Tuotantosovellus",
      "unlimited": "Rajaton",
      "unlimitedDescPre": "— avain käyttää koko tilisi saldoa/kiintiötäsi. Poista kova luottoraja valinta.",
      "unlimitedDescPost": "poistaa avaimen välittömästi käytöstä.",
      "balanceZeroNote": "Huomaa: tilisi saldo on 0 dollaria – edes rajoittamatonta avainta ei voi käyttää.",
      "tierHelp": "Määrittää, käytetäänkö paketin rajoja vai Pay-as-you-Go.",
      "previewLabel": "ESIKATSAUS",
      "previewLive": "Päivitykset livenä. Tulee voimaan luomisen jälkeen.",
      "previewFooter": "Koko esikatselu oikealla",
      "creating": "Luodaan…",
      "createNewKey": "Luo uusi avain",
      "editDesc": "Säädä tarraa ja rajoja.",
      "lockedKey": "Tämä avain on poistettu käytöstä.",
      "lockedKeyDescPre": "Raja on",
      "lockedKeyDescMid": "estää jokaisen pyynnön. Aseta RPM ≥ 1 ja joko luottoraja, joka on suurempi kuin 0 tai ota käyttöön",
      "lockedKeyDescPost": "sitten tallenna.",
      "staleRpmWarning": "Tallennettu RPM-arvo ({rpm}) on sallitun alueen (1–{cap}) ulkopuolella – todennäköisesti suunnitelman/tason muutoksen jälkeen. Säädä ennen tallentamista.",
      "maxLabel": "Max",
      "saving": "Tallennetaan…",
      "saveChanges": "Tallenna muutokset",
      "primaryKeyParen": "(ensisijainen avain)",
      "ipWhitelistDisabled": "IP sallittujen lista poistettu käytöstä",
      "ipWhitelistSaved": "IP sallittujen luettelo tallennettu ({count})",
      "saveFailed": "Tallennus epäonnistui",
      "ipDialogDesc": "Jätä tyhjäksi salliaksesi IP. Muussa tapauksessa yksi IP riviä kohden (tai pilkuilla erotettuna). Tarkka vastaavuus – järjestelmänvalvojan tilit sallitaan aina itsenäisesti.",
      "ipPlaceholder": "esim. 203.0.113.42\n198.51.100.7",
      "ipWarning": "Varoitus:",
      "ipWarningDesc": "jos nykyinen IP-osoitteesi ei ole listalla, lukitset itsesi ulos. Suorita",
      "ipWarningDescPost": "ensin.",
      "save": "Tallenna",
      "ipNoneAll": "Ei mitään – kaikki IPs sallittu",
      "ipAllowedSingle": "{count} IP sallittu",
      "ipAllowedPlural": "{count} IPs sallittu",
      "requestsPerDay": "{count} pyyntöä / päivä",
      "requestsPerMin": "{count} pyyntöä / min",
      "modelsSelectionN": "Valinta: {count}",
      "modelsAllN": "Kaikki ({count}+)",
      "modelsAllUnknown": "Kaikki (-)",
      "unnamed": "Nimetön",
      "tierLabel": "Tier",
      "previewRpm": "{rpm} pyyntöä/min",
      "previewModels": "Mallit",
      "creditsSuffix": "{count} luottoa",
      "tierStandard": "Vakio",
      "tierStandardDesc": "Tilin oletusasetukset",
      "tierPremiumOnly": "Vain Premium",
      "tierPremiumOnlyDesc": "Suunnitelman rajoitukset, ei P2G",
      "tierPaygoFull": "Käytön mukaan",
      "tierPaygoFullDesc": "Vain P2G-saldo",
      "modelsAllBtn": "Kaikki mallit",
      "modelsSelection": "Valinta…",
      "tierGroupLabel": "Tier"
    },
    "customModels": {
      "addTitle": "Lisää mukautettu malli",
      "addDescription": "Yhdistä oma mallipäätepisteesi käytettäväksi API:n kautta.",
      "yourModels": "Omat mallisi",
      "noModels": "Ei vielä mukautettuja malleja",
      "lookingForGlobal": "Etsitkö sisäänrakennettuja malleja, joita voit käyttää hyvityksillesi?",
      "browseModels": "Selaa malleja",
      "openPlayground": "Avaa leikkikenttä",
      "addFirst": "Lisää ensimmäinen mallisi lomakkeella",
      "displayName": "Näyttönimi",
      "modelId": "Mallin tunnus",
      "provider": "Palveluntarjoaja",
      "endpointUrl": "Päätepisteen URL-osoite",
      "providerApiKey": "Palveluntarjoajan API-avain",
      "maxTokens": "Enimmäistokenit",
      "modelType": "Mallin tyyppi",
      "chat": "Keskustelu",
      "images": "Kuvat",
      "addModel": "Lisää malli",
      "adding": "Lisätään...",
      "saveChanges": "Tallenna muutokset",
      "saving": "Tallennetaan...",
      "cancel": "Peruuta",
      "editModel": "Muokkaa mallia",
      "updateConfig": "Päivitä asetukset kohteelle {name}",
      "leaveBlank": "Jätä tyhjäksi säilyttääksesi nykyisen avaimen",
      "deleteConfirm": "Haluatko varmasti poistaa mallin \"{name}\"?",
      "deleteTitle": "Poista malli",
      "delete": "Poista"
    },
    "billing": {
      "activeSubscription": "Aktiivinen tilaus",
      "manageDetails": "Hallinnoi nykyistä suunnitelmaasi ja laskutustietojasi.",
      "plan": "{plan} Suunnitelma",
      "billedMonthly": "Laskutetaan kuukausittain {price} €/kk",
      "manageSubscription": "Hallinnoi tilausta",
      "manageOnCreem": "Hallitse Creemissä",
      "creemSoon": "Creemin hallinta tulossa pian",
      "manageDescription": "Napsauta Hallinnoi tilausta päivittääksesi suunnitelmasi, maksutapasi tai peruuttaaksesi tilauksesi suojatun laskutusportaalimme kautta.",
      "manageDescriptionCreem": "Napsauta \"Hallinnoi Creemissä\" päivittääksesi suunnitelmasi, maksutapasi tai peruuttaaksesi tilauksesi Creemin suojatun laskutusportaalin kautta.",
      "cancelConfirm": "Haluatko varmasti peruuttaa tilauksesi? Sinut alennetaan ilmaiseen pakettiin välittömästi.",
      "headerSubtitle": "Hallinnoi saldoasi tai päivitä tilaukseksi."
    },
    "upgrade": {
      "title": "Päivitä suunnitelmasi",
      "subtitle": "Avaa lisää pyyntöjä ja premium-ominaisuuksia.",
      "currency": {
        "eur": "EUR",
        "usd": "USD"
      },
      "billing": {
        "subscription": "Tilaus",
        "onetime": "1 kuukauden lippu"
      },
      "premium": {
        "badge": "Suositeltava",
        "perMonth": "/kk",
        "per30Days": "/30p",
        "feature1": "5 pyyntöä minuutissa",
        "feature2": "5000 pyyntöä päivässä",
        "feature3": "Ensisijainen tuki",
        "ctaSubscription": "Hanki Premium (Sub)",
        "ctaOnetime": "Hanki Premium (passi)"
      },
      "master": {
        "badge": "Suosituin",
        "perMonth": "/kk",
        "per30Days": "/30p",
        "feature1": "10 pyyntöä minuutissa",
        "feature2": "Rajoittamaton päivittäinen pyyntö",
        "feature3": "Omistettu tuki",
        "ctaSubscription": "Hanki Master (Sub)",
        "ctaOnetime": "Hanki Master (Pass)",
        "topUp": "Täydennyspisteet",
        "topUpDesc": "Nollaa päivittäiset luottosi välittömästi"
      },
      "topUp": "Täydennyspisteet",
      "topUpDesc": "Nollaa päivittäiset luottosi välittömästi",
      "processing": "Käsitellään...",
      "agreeToTerms": "Olen samaa mieltä",
      "termsLink": "Palveluehdot",
      "andThe": "ja",
      "refundPolicy": "Hyvityskäytäntö",
      "mustAgree": "Hyväksy ehdot ja hyvityskäytäntö.",
      "selectPaymentMethod": "Valitse Maksutapa",
      "cryptoOnlyOneTime": "Kryptomaksut tukevat vain kertakortteja (ei tilauksia). Valitse 30 päivän Premium- tai Master-passi.",
      "cryptoNotice": "Vain kertalippu"
    },
    "addons": {
      "title": "Lisäosat",
      "subtitle": "Paranna kokemustasi valinnaisilla ominaisuuksilla.",
      "fullContext": {
        "title": "Koko kontekstin lisäys",
        "active": "Täysi konteksti aktiivinen",
        "description": "Poista alustan rajoitukset kontekstin pituudesta. Palveluntarjoajan mallirajoitukset ovat edelleen voimassa.",
        "price": "9,99 €/kk",
        "feature1": "Rajoittamaton konteksti",
        "feature2": "Toimii minkä tahansa suunnitelman kanssa",
        "addToPlan": "Lisää suunnitelmaan",
        "manageAddon": "Hallinnoi Addonia",
        "processing": "Käsitellään...",
        "cancelConfirm": "Haluatko varmasti peruuttaa Full Context -lisäosan? Se perutaan välittömästi ilman korvausta.",
        "activeDescription": "Rajoittamaton kontekstin pituus käytössä (9,99 €/kk)"
      }
    },
    "pay2go": {
      "badge": "Pay2Go",
      "active": "Pay-as-You-Go Aktiivinen",
      "description": "Maksa vain siitä, mitä käytät, ilman hintarajoituksia",
      "balance": "Tasapaino",
      "unlimitedRequests": "Rajoittamaton määrä pyyntöjä",
      "unlimitedDescription": "Pääset kaikkiin malleihin ilman päivittäisiä rajoituksia, kun sinulla on tasapaino",
      "currentBalance": "Nykyinen saldo",
      "payAsYouGoCredits": "Jatkuva luotto",
      "billingMode": "Laskutustila",
      "noRateLimits": "Ei aktiivisia korkorajoituksia",
      "creemSoon": "pian",
      "creemSoonNotice": "Creem-integraatio tulossa pian!",
      "creemDescription": "Kortti / Maailmanlaajuinen",
      "title": "Pay-as-You-Go",
      "invite": {
        "title": "Hanki 20 % enemmän krediittejä",
        "description": "Kutsu ystäviä saadaksesi 20 % enemmän Pay2Go-saldoa."
      },
      "tabs": {
        "topUp": "Lisää saldoa",
        "stats": "Tilastot",
        "models": "Mallit"
      },
      "topup": {
        "title": "Lisää krediittejä",
        "description": "Valitse summa turvalliselta kassasivulta",
        "button": "Lisää luottoa",
        "processing": "Käsitellään...",
        "selectAmount": "Valitse Summa",
        "customAmount": "Mukautettu määrä",
        "minAmount": "Vähimmäismäärä on",
        "orEnterCustom": "Tai anna mukautettu summa",
        "subtitle": "Valitse summa · ei vähimmäiskulutusta · ei vanhenemista"
      },
      "benefits": {
        "title": "As-you-Go:n edut",
        "noRateLimits": "Ei korkorajoituksia, kun se on käytössä saldolla",
        "exclusiveModels": "Pääsy eksklusiivisiin roolipelimalliversioihin",
        "payPerUse": "Maksa vain todella käyttämistäsi tunnuksista",
        "noExpiry": "Krediitit eivät koskaan vanhene",
        "noExpiryTitle": "Ei vanhene koskaan",
        "noExpiryDesc": "Luotto ei lopu koskaan",
        "instantTitle": "Heti saatavilla",
        "instantDesc": "Käytössä heti maksun jälkeen",
        "switchTitle": "Mallin vaihto",
        "switchDesc": "Vaihda mallien välillä vapaasti"
      },
      "stats": {
        "currentBalance": "Nykyinen saldo",
        "status": "Tila",
        "active": "Aktiivinen",
        "disabled": "Ei käytössä",
        "disabledWarning": "Pay-As You-Go on poistettu käytöstä",
        "disabledDescription": "Sinulla on {balance} krediitteinä, mutta käytön mukaan maksettava laskutus on pois käytöstä. Ota se käyttöön, jotta voit käyttää krediittejäsi ja ainutlaatuisia malleja.",
        "noBalanceWarning": "Ei saldoa jäljellä",
        "noBalanceDescription": "Lisää krediittejä jatkaaksesi jako-jako-ominaisuuksien käyttöä ja käyttääksesi eksklusiivisia malleja."
      },
      "models": {
        "noModels": "Jako-jako-malleja ei ole saatavilla",
        "pay2goOnly": "Vain Pay2Go",
        "accordionHint": "Mallit, joita voit käyttää Pay-as-You-Go-luotolla"
      },
      "toggle": {
        "enabled": "Jako-jako on nyt käytössä",
        "disabled": "Jako-jako on nyt poistettu käytöstä",
        "error": "Jakomaksun vaihtaminen epäonnistui"
      },
      "usagePerMonth": "Käyttö/kuukausi",
      "runway": "Kiitotie",
      "autoReload": "Automaattinen uudelleenlataus",
      "last7Days": "Viimeiset 7 päivää",
      "vsLastWeek": "vs. viime viikko",
      "requests": "Pyynnöt",
      "popular": "SUOSITTU",
      "bestValue": "PARAS ARVO",
      "customAmountLabel": "Mukautettu määrä",
      "paymentMethod": "Maksutapa",
      "creemSub": "Kortti · SEPA · Apple Pay",
      "cryptoTitle": "Salaus · USDC/USDT",
      "cryptoSub": "Instant · Nimetön",
      "trust": {
        "secure": "Turvallinen maksu",
        "ssl": "256-bittinen SSL",
        "gdpr": "GDPR-yhteensopiva"
      },
      "useBalance": "Käytä saldoa"
    },
    "billingMode": {
      "payAsYouGo": "Pay-as-You-Go",
      "subscriptionPlans": "Tilaussuunnitelmat"
    },
    "errors": {
      "failedToFetchUser": "Käyttäjätietojen nouto epäonnistui",
      "unknownError": "Tapahtui tuntematon virhe",
      "allFieldsRequired": "Kaikki kentät ovat pakollisia.",
      "invalidEndpointUrl": "Virheellinen päätepisteen URL-osoite.",
      "failedToAddModel": "Mallin lisääminen epäonnistui",
      "failedToUpdateModel": "Mallin päivitys epäonnistui",
      "failedToDeleteModel": "Mallin poistaminen epäonnistui",
      "failedToCancelSubscription": "Tilauksen peruuttaminen epäonnistui",
      "failedToCreateCheckout": "Kassaistunnon luominen epäonnistui",
      "failedToCreatePortal": "Portaaliistunnon luominen epäonnistui",
      "failedToCancelAddon": "Lisäyksen peruuttaminen epäonnistui",
      "alreadySubscribed": "Sinulla on jo aktiivinen tilaus tähän sopimukseen. Peruuta se ensin tai käytä täyttövaihtoehtoa luottojen lisäämiseen."
    },
    "toasts": {
      "modelAdded": "Malli lisätty onnistuneesti!",
      "modelUpdated": "Malli päivitetty onnistuneesti!",
      "modelDeleted": "Mallin poistaminen onnistui!",
      "subscriptionCancelled": "Tilaus peruutettu onnistuneesti",
      "addonCancelled": "Lisäys peruutettiin onnistuneesti"
    },
    "modelBadges": {
      "chat": "Keskustelu",
      "image": "Kuva"
    },
    "eyebrow": "Yleiskatsaus",
    "welcomeBack": "Tervetuloa takaisin",
    "overviewSubtitle": "Tässä on yleiskatsaus – oletko valmis lähettämään ensimmäisen pyyntösi?",
    "actions": {
      "createKey": {
        "title": "Luo API-avain",
        "desc": "Aloita luomalla ensimmäinen avaimesi",
        "cta": "Luo"
      },
      "billing": {
        "title": "Hallinnoi laskutusta",
        "desc": "Lataukset, tilaukset ja maksutavat",
        "cta": "Avaa"
      },
      "credits": {
        "title": "Ilmaiset krediitit",
        "desc": "Ansaitse 10 % jokaisesta suosittelemasi luottoostoksesta",
        "cta": "Lunasta"
      }
    },
    "security": {
      "statusSuccess": "Onnistui",
      "statusFail": "Epäonn.",
      "detailWrongPassword": "Väärä salasana",
      "detail2faFailed": "2FA epäonnistui",
      "detailUnknownUser": "Tuntematon käyttäjä",
      "detailLockedOut": "Tili lukittu (hintarajoitus)",
      "methodPassword": "Salasana",
      "methodTotp": "2FA · TOTP",
      "methodMagicLink": "Maaginen linkki",
      "locationUnknown": "Sijainti tuntematon",
      "deviceUnknown": "Tuntematon",
      "deviceMobileApp": "Mobiilisovellus",
      "deviceMobileSuffix": "mobiili",
      "loginLocationsTitle": "Kirjautumispaikat · 14 päivää",
      "country": "maassa",
      "countries": "maissa",
      "events": "Tapahtumat",
      "logins": "Kirjautumiset",
      "failuresShort": "fail",
      "activeSessions": "Aktiiviset istunnot",
      "signOutOthers": "Kirjaudu ulos kaikista muista",
      "loading": "Ladataan…",
      "loadError": "Lataus epäonnistui",
      "noSessions": "Ei aktiivisia istuntoja.",
      "activeBadge": "AKTIIVINEN",
      "signOut": "Kirjaudu ulos",
      "relativeNow": "aktiivinen nyt",
      "relativeMin": "{n} min sitten",
      "relativeHour": "{n} h sitten",
      "relativeDay": "{n} päivä sitten",
      "relativeDays": "{n} päivää sitten",
      "unknownCountry": "tuntematon maa",
      "burstHeading": "{count} epäonnistuneita yrityksiä kohteesta {country} {flag} {when}",
      "burstLocked": "Tili lukittiin automaattisesti 15 minuutiksi {count} yrityksen jälkeen.",
      "burstAdvice": "Jos se et ollut sinä — vaihda salasana ja tarkista 2FA.",
      "changePassword": "Vaihda salasana",
      "dismiss": "Ohita",
      "statTotal": "Yhteensä",
      "statSuccess": "Onnistuneita",
      "statFailures": "Epäonnistumiset",
      "noLoginEvents": "Kirjautumistapahtumia ei löytynyt.",
      "colStatus": "Tila",
      "colLocation": "Sijainti",
      "colIp": "IP",
      "colDevice": "Laite",
      "colMethod": "Tapa",
      "colTime": "Aika",
      "retentionNote": "Kirjautumistapahtumat säilytetään 90 päivää. Sijainti on arvioitu IP-haulla.",
      "ipsSingle": "IP",
      "ipsPlural": "IPs",
      "subtitle": "Epäilyttävä toiminta ja kirjautumishistoria",
      "score": {
        "title": "Turvallisuuspisteet",
        "outOf": "/ 100",
        "tierLow": "Matala",
        "tierMedium": "Keskitaso",
        "tierHigh": "Korkea",
        "activeCount": "{active} / {total} suojausta käytössä",
        "measuresTitle": "Suojaukset",
        "measuresCount": "{active}/{total} käytössä",
        "improve": "Paranna pisteitä",
        "manage": "Hallinnoi",
        "activate": "Aktivoi",
        "add": "Lisää",
        "link": "Yhdistä",
        "factor2faLabel": "Kaksivaiheinen tunnistus",
        "factor2faDesc": "Authenticator-sovellus suositellaan",
        "factorEmailLabel": "Sähköpostiosoite",
        "factorEmailDesc": "Tilin palautusta ja ilmoituksia varten",
        "factorGoogleLabel": "Google-tili liitetty",
        "factorGoogleDesc": "Salasanaton toissijainen kirjautumisvaihtoehto",
        "factorDiscordLabel": "Discord liitetty ja vahvistettu",
        "factorDiscordDesc": "Discord-tili puhelinvahvistuksella",
        "factorDiscordDescUnverified": "Discord liitetty, mutta puhelinta ei vahvistettu",
        "factor2faActive": "Käytössä authenticator-sovelluksella"
      }
    }
  },
  "chatPlayground": {
    "title": "Chat-leikkikenttä",
    "back": "Takaisin",
    "history": "Historia",
    "searchConversations": "Hae keskusteluja...",
    "chatDeleted": "Chat poistettu",
    "newChat": "Uusi Chat",
    "conversations": "keskusteluja",
    "noConversations": "Ei vielä keskusteluja",
    "startNewChat": "Aloita uusi chat",
    "noResults": "Tuloksia ei löytynyt",
    "tryDifferentSearch": "Kokeile toista hakutermiä",
    "navigate": "Navigoi",
    "select": "Valitse",
    "close": "Sulje",
    "anytime": "milloin tahansa",
    "format": "Muoto",
    "stream": "Striimaa",
    "selectModel": "Valitse malli",
    "searchModels": "Hae malleja...",
    "messages": "viestejä",
    "clear": "Selkeä",
    "startConversation": "Aloita keskustelu",
    "typeMessageToBegin": "Aloita chattailu tekoälyn kanssa kirjoittamalla viesti alle",
    "thinking": "Mieti...",
    "edit": "Muokkaa",
    "regenerate": "Luo uudelleen",
    "copy": "Kopioi",
    "submitAndRegenerate": "Lähetä ja luo uudelleen",
    "cancel": "Peruuta",
    "role": {
      "user": "Käyttäjä",
      "assistant": "Avustaja",
      "system": "Järjestelmä"
    },
    "error": "Virhe",
    "rateLimitExceeded": "Käyttöraja ylitetty",
    "imageAttached": "Kuva liitteenä",
    "attachImage": "Liitä kuva",
    "attachMenu": {
      "open": "Lisää liite",
      "document": "Tiedostot",
      "documentHint": "Liitä PDF- tai tekstiasiakirja",
      "gallery": "Galleria",
      "galleryHint": "Valitse kuva laitteestasi",
      "camera": "Kamera",
      "cameraHint": "Ota valokuva suoraan",
      "generateImage": "Luo kuva",
      "generateImageHint": "Luo kuva tekoälyllä",
      "extracting": "Poimitaan sisältöä…",
      "tokensSuffix": "rahakkeita",
      "removeDocument": "Poista tiedosto",
      "errorTooLarge": "Tiedosto on liian suuri (enintään 5 Mt).",
      "errorUnsupported": "Tätä tiedostotyyppiä ei tueta.",
      "errorExtract": "Tämän tiedoston lukeminen epäonnistui."
    },
    "imageGen": {
      "title": "Luo kuva",
      "subtitle": "Valitse malli, kirjoita kehote, liitä tulos",
      "close": "Sulje",
      "model": "Malli",
      "pickModel": "Valitse malli",
      "noModels": "Kuvamalleja ei ole saatavilla",
      "searchModels": "Hae kuvamalleja…",
      "prompt": "Kehote",
      "promptPlaceholder": "Rauhallinen vuoristojärvi auringonlaskun aikaan…",
      "promptRequired": "Anna kehote",
      "modelRequired": "Valitse ensin malli",
      "parameters": "Parametrit",
      "aspectRatio": "Kuvasuhde",
      "quality": "Laatu",
      "numImages": "Kuvien määrä",
      "results": "Tulokset",
      "generate": "Luo",
      "generating": "Luodaan…",
      "regenerate": "Luo uudelleen",
      "attach": "Kiinnitä",
      "download": "Lataa",
      "attached": "Liitetty chattiin",
      "attachFailed": "Kuvaa ei voitu liittää"
    },
    "typeYourMessage": "Kirjoita viestisi...",
    "send": "Lähetä",
    "quickSettings": "Pika-asetukset",
    "temperature": "Lämpötila",
    "precise": "Tarkkaa",
    "creative": "Luova",
    "systemMessage": "Järjestelmäviesti",
    "systemMessagePlaceholder": "Olet avulias avustaja...",
    "maxTokens": "Enimmäistokenit",
    "config": "Konfig",
    "code": "Koodi",
    "apiConfig": "API-määritykset",
    "apiConfigDescription": "Hienosäädä API-pyyntöparametreja.",
    "apiFormat": "API-muoto",
    "openAIFormat": "OpenAI-muoto",
    "anthropicFormat": "Antrooppinen muoto",
    "streaming": "Suoratoisto",
    "streamingDescription": "Vastaanota tokeneita, kun niitä luodaan",
    "systemMessageConfigPlaceholder": "Syötä järjestelmäviesti määrittääksesi avustajan toiminnan...",
    "advancedSettings": "Lisäasetukset (työkalut/toiminnot)",
    "toolDefinitions": "Työkalut Määritelmät",
    "addTool": "Lisää työkalu",
    "tool": "Työkalu",
    "functionName": "Toiminnon nimi",
    "description": "Kuvaus",
    "parametersJson": "Parametrit (JSON)",
    "codeSnippets": "Koodinpätkät",
    "codeSnippetsDescription": "Käyttövalmis koodi nykyiselle kokoonpanollesi.",
    "lookingForRoleplay": "Etsitkö roolipeliä?",
    "roleplayPrompt": "Tarkista",
    "roleplayLink": "llmplayground.net",
    "roleplayCTA": "— Airforcen paras roolipelin käyttöliittymä.",
    "visitSite": "Vieraile sivustolla",
    "chat": "Keskustelu",
    "model": "Malli",
    "failedToLoadModels": "Mallien lataaminen epäonnistui",
    "selectModelError": "Valitse malli",
    "emptyResponseError": "Malli ei vastannut useiden yritysten jälkeen. Yritä uudelleen.",
    "imageQuery": "Mitä näet tässä kuvassa?",
    "copied": "Kopioitu leikepöydälle",
    "uploadPreview": "Lataa esikatselu",
    "clearChat": "Tyhjennä Chat",
    "clearConfirmMessage": "Haluatko varmasti tyhjentää tämän keskustelun? Tätä toimintoa ei voi kumota.",
    "newFolder": "Uusi kansio",
    "folderDeleted": "Kansio poistettu",
    "moveToFolder": "Siirrä kansioon",
    "noFolder": "Ei kansiota",
    "exportChat": "Vie chat",
    "chatExported": "Chat viety",
    "folderExported": "Kansio viety",
    "exportAll": "Vie kaikki keskustelut",
    "allExported": "Kaikki keskustelut viety",
    "importChats": "Tuo chatit",
    "chatImported": "Chat tuotu",
    "folderImported": "Kansio tuotu",
    "allImported": "Kaikki keskustelut tuotu",
    "addNewTool": "Lisää uusi työkalu",
    "copyMessage": "Kopioi viesti",
    "createNewChat": "Luo uusi chat",
    "deleteChat": "Poista Chat",
    "dismissError": "Hylkää virhe",
    "editMessage": "Muokkaa viestiä",
    "hideAdvancedSettings": "Piilota lisäasetukset",
    "loadChat": "Lataa Chat",
    "maxTokensSlider": "Enimmäistokenit",
    "messageInput": "Kirjoita viesti…",
    "openChatHistory": "Avaa keskusteluhistoria",
    "regenerateResponse": "Luo vastaus uudelleen",
    "removeImage": "Poista kuva",
    "removeTool": "Poista työkalu",
    "save": "Tallenna",
    "selectApiFormat": "Valitse API-muoto",
    "sendMessage": "Lähetä Viesti",
    "showAdvancedSettings": "Näytä lisäasetukset",
    "temperatureSlider": "Lämpötila",
    "toggleStreaming": "Suoratoisto"
  },
  "musicPlayground": {
    "title": "Musiikin leikkikenttä",
    "subtitle": "Luo kappaleita Suno-luokan malleilla",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Musiikkimalleja ei ole saatavilla",
    "searchModels": "Hae musiikkimalleja…",
    "prompt": "Kehote",
    "promptPlaceholder": "Unenomainen lo-fi-hip hop -kappale pianosilmukalla…",
    "customPromptPlaceholder": "Sanoitukset + [Verse] / [Chorus] rakennetunnisteet…",
    "promptRequired": "Anna kehote",
    "modelRequired": "Valitse ensin malli",
    "parameters": "Parametrit",
    "customMode": "Mukautettu tila",
    "customModeHint": "Kirjoita sanoitukset + rakennetunnisteet suoraan",
    "instrumental": "Vain instrumentaali",
    "instrumentalHint": "Luo ilman laulua",
    "style": "Tyyli / genre",
    "stylePlaceholder": "lo-fi, jazz, unenomainen, melankolinen",
    "maxDuration": "Enimmäispituus: {seconds}s",
    "generate": "Luo",
    "generating": "Luodaan…",
    "generated": "Raita luotu",
    "tracks": "Kappaleet",
    "empty": "Luodut kappaleet näkyvät täällä.",
    "download": "Lataa",
    "duration": "Kesto",
    "trackReady": "Raita valmis",
    "clearAll": "Poistetaanko kaikki musiikkiluonnokset paikallisesta historiasta?",
    "noVocals": "Luo ilman lauluääniä",
    "compositionHint": "Strukturoitu JSON kehotteen sijaan — osiot, tyylit, kesto per osa"
  },
  "sfxPlayground": {
    "title": "Äänitehosteet",
    "subtitle": "Luo elokuvamaisia äänitehosteita tekstistä",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "SFX-malleja ei ole saatavilla",
    "searchModels": "Etsi SFX-malleja…",
    "prompt": "Kehote",
    "promptPlaceholder": "Sadetta peltikatolla ja kaukaisen ukkonen jylisee…",
    "promptRequired": "Anna kehote",
    "modelRequired": "Valitse ensin malli",
    "parameters": "Parametrit",
    "duration": "Kesto",
    "autoDuration": "Automaattinen kesto",
    "autoDurationHint": "Anna mallin valita pituus",
    "promptInfluence": "Välitön vaikutus",
    "creative": "Luova",
    "literal": "Kirjaimellinen",
    "outputFormat": "Tulostusmuoto",
    "generate": "Luo vaikutus",
    "generating": "Luodaan…",
    "generated": "Ääniefekti luotu",
    "clips": "Leikkeet",
    "empty": "Luodut leikkeet näkyvät täällä.",
    "download": "Lataa",
    "sfxReady": "Ääniefekti valmis",
    "clearAll": "Poistetaanko kaikki SFX historiasta?",
    "samples": {
      "ambient": {
        "title": "Ambient",
        "desc": "Sade peltikatolla + ukkonen"
      },
      "whoosh": {
        "title": "Whoosh",
        "desc": "Elokuvamainen siirtymä"
      },
      "impact": {
        "title": "Isku",
        "desc": "Räjähdysisku sub-droppilla"
      },
      "foley": {
        "title": "Foley",
        "desc": "Askelia puulattialla"
      }
    }
  },
  "transcriptionPlayground": {
    "title": "Puhe tekstiksi",
    "subtitle": "Literoi ääni ja video tekstiksi",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Transkriptiomalleja ei ole saatavilla",
    "searchModels": "Hae transkriptiomalleja…",
    "audioFile": "Äänitiedosto",
    "dropOrClick": "Pudota tiedosto tai lataa se napsauttamalla",
    "fileHint": "ääni/* tai video/*, enintään {mb} Mt",
    "fileTooLarge": "Tiedosto ylittää kokorajoituksen",
    "fileRequired": "Valitse ensin äänitiedosto",
    "modelRequired": "Valitse ensin malli",
    "removeFile": "Poista tiedosto",
    "parameters": "Parametrit",
    "diarize": "Kaiuttimen päiväkirja",
    "diarizeHint": "Tunnista kuka sanoi mitä",
    "numSpeakers": "Kaiuttimien määrä",
    "numSpeakersPlaceholder": "automaattinen tunnistus",
    "audioEvents": "Merkitse äänitapahtumat",
    "audioEventsHint": "Mark nauru, hiljaisuus, suosionosoitukset…",
    "language": "Kieli vihje",
    "languagePlaceholder": "automaattinen tunnistus",
    "optional": "valinnainen",
    "transcribe": "Literoi",
    "transcribing": "Litteroidaan…",
    "transcribed": "Transkriptio valmis",
    "results": "Transkriptiot",
    "empty": "Transkriptiot näkyvät täällä.",
    "segments": "Segmentit aikaleimoilla",
    "copy": "Kopioi teksti",
    "copied": "Kopioitu",
    "copyFailed": "Kopiointi epäonnistui",
    "downloadTxt": "Lataa .txt",
    "clearAll": "Poistetaanko kaikki transkriptiot historiasta?",
    "tagAudioHint": "Merkitse nauru, hiljaisuus, taputus…"
  },
  "voiceOverPlayground": {
    "title": "Ääniselostukset",
    "subtitle": "Studiotasoinen kerronta elokuvallisella toimituksella",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Selostusmalleja ei ole saatavilla",
    "searchModels": "Hae selostusmalleja…",
    "voice": "Ääni",
    "voicesAvailable": "ääniä",
    "voiceSearchPlaceholder": "Hae ääniä…",
    "voiceNoMatch": "Ei vastaavia ääniä",
    "fallbackVoices": "varaääniä",
    "script": "Käsikirjoitus",
    "scriptPlaceholder": "Liitä selostusskriptisi tähän…",
    "textRequired": "Kirjoita ensin skripti",
    "modelRequired": "Valitse ensin malli",
    "voiceRequired": "Valitse ensin ääni",
    "parameters": "Suorituskyky",
    "stability": "Vakaus",
    "expressive": "Ilmeikäs",
    "stable": "Vakaa",
    "similarityBoost": "Samankaltaisuuden lisäys",
    "style": "Tyylin liioittelua",
    "speakerBoost": "Kaiuttimen tehostus",
    "speakerBoostHint": "Lisää samankaltaisuutta valitun äänen kanssa",
    "speed": "Tahti",
    "outputFormat": "Tulostusmuoto",
    "language": "Kieli",
    "languagePlaceholder": "automaattinen",
    "recordTake": "Ennätys",
    "recording": "Tallennetaan…",
    "recorded": "Ota tallennettuna",
    "takes": "kestää",
    "empty": "Tallennetut otokset näkyvät täällä.",
    "download": "Lataa",
    "recordingFailed": "Tallennus epäonnistui",
    "clearAllTakes": "Poistetaanko kaikki otokset historiasta?",
    "recordEmpty": "Liitä käsikirjoitus ja tallenna otos.",
    "takeRecorded": "Otos tallennettu",
    "recordingTitle": "Tallennus",
    "samples": {
      "advert": {
        "title": "Mainos",
        "desc": "Energinen mainosspotti"
      },
      "tutorial": {
        "desc": "Rauhallinen selostajan ääni",
        "title": "Opastus"
      },
      "trailer": {
        "title": "Traileri",
        "desc": "Elokuvamainen kertojan ääni"
      },
      "game": {
        "title": "Peli",
        "desc": "Kertoja toiminta-RPG:ssä"
      }
    }
  },
  "audioToolsPlayground": {
    "title": "Äänityökalut",
    "subtitle": "Poista taustamelu tai vaihda ääniä äänessä",
    "isolation": "Äänieristin",
    "voiceChange": "Äänenvaihtaja",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Ei malleja saatavilla",
    "searchModels": "Hae malleja…",
    "audioFile": "Äänitiedosto",
    "dropOrClick": "Pudota tiedosto tai lataa se napsauttamalla",
    "fileHint": "ääni/* tai video/*, enintään {mb} Mt",
    "fileTooLarge": "Tiedosto ylittää kokorajoituksen",
    "fileRequired": "Valitse ensin äänitiedosto",
    "modelRequired": "Valitse ensin malli",
    "voiceRequired": "Valitse ensin kohdeääni",
    "removeFile": "Poista tiedosto",
    "targetVoice": "Kohteen ääni",
    "voicesAvailable": "ääniä",
    "voiceSearchPlaceholder": "Hae ääniä…",
    "runIsolation": "Nauha tausta",
    "runVoiceChange": "Vaihda ääntä",
    "processing": "Käsitellään…",
    "processed": "Valmis",
    "outputs": "Lähdöt",
    "empty": "Käsitelty ääni näkyy tässä.",
    "download": "Lataa",
    "changeVoice": "Vaihda äänen tallenteessa",
    "changeVoiceBtn": "Vaihda ääni",
    "clearAllOutputs": "Poistetaanko kaikki tulosteet historiasta?",
    "isolatorHint": "Lähetä tallenne, niin eristin poistaa taustakohinan ja jäljelle jää vain ääni.",
    "changerHint": "Lähetä tallenne ja valitse kohdeääni — äänenmuuttaja siirtää sävyn ja painotuksen.",
    "verbs": {
      "isolation": {
        "title": "Äänieristin",
        "subtitle": "Poista taustakohina"
      },
      "voiceChange": {
        "title": "Äänenmuuttaja",
        "subtitle": "Vaihda äänen tallenteessa"
      }
    }
  },
  "audiobookPlayground": {
    "title": "Äänikirjat",
    "subtitle": "Pitkän muotoinen kerronta jaettu lukuihin",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Selostusmalleja ei ole saatavilla",
    "searchModels": "Hae…",
    "narrator": "Kertojan ääni",
    "voicesAvailable": "ääniä",
    "voiceSearchPlaceholder": "Hae ääniä…",
    "fallbackVoices": "varaääniä",
    "manuscript": "Käsikirjoitus",
    "manuscriptPlaceholder": "Liitä käsikirjoituksesi. Käytä \"# Chapter N\", \"[Chapter N]\" tai vain tyhjiä rivejä lukujen välillä – tunnistetaan automaattisesti.",
    "detectionHint": "Havaittu: alasmerkintäotsikot, [sulkeissa] -tunnisteet, \"Luku N\" -rivit tai kolminkertaiset rivinvaihtolohkot.",
    "chapters": "lukuja",
    "chapterList": "Luvut",
    "chars": "merkkiä",
    "performance": "Selostusasetukset",
    "stability": "Vakaus",
    "similarityBoost": "Samankaltaisuuden lisäys",
    "style": "Tyylin liioittelua",
    "speakerBoost": "Kaiuttimen tehostus",
    "outputFormat": "Tulostusmuoto",
    "textRequired": "Liitä ensin käsikirjoitus",
    "modelRequired": "Valitse ensin malli",
    "voiceRequired": "Valitse ensin kertojan ääni",
    "chapterTooLong": "{n} kappale(tta) ylittää {max} merkkiä – jaa ne ensin",
    "oversizeWarning": "{n} lukua ylittää {max} merkkiä – jaa ne tai valitse malli, jolla on suurempi budjetti.",
    "overLimit": "yli rajan",
    "generateAll": "Kerro äänikirjasta",
    "generateMissing": "Kerro jäljellä",
    "narrating": "Kerrotaan…",
    "allDone": "Äänikirja valmis",
    "regen": "Kerro tämä luku uudelleen",
    "downloadAll": "Lataa kaikki",
    "download": "Lataa",
    "empty": "Havaitut luvut näkyvät täällä, kun liität käsikirjoituksen.",
    "statusPending": "vireillä",
    "statusRunning": "käynnissä",
    "statusDone": "tehty",
    "statusFailed": "epäonnistunut",
    "narrate": "Kerro äänikirja",
    "audiobookDone": "Äänikirja valmis",
    "chaptersStatus": "{done} valmista, {failed} epäonnistui",
    "emptyDesc": "Jokaisesta luvusta tulee oma MP3; voit ladata kaikki kerralla."
  },
  "podcastPlayground": {
    "title": "Podcastit",
    "subtitle": "Usean kaiuttimen dialogi koodatusta käsikirjoituksesta",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Puhemalleja ei ole saatavilla",
    "searchModels": "Hae…",
    "speakers": "Kaiuttimet",
    "addSpeaker": "Lisää kaiutin",
    "pickVoice": "Valitse ääni…",
    "inUse": "käytetty",
    "outputFormat": "Tulostusmuoto",
    "script": "Käsikirjoitus",
    "scriptPlaceholder": "[A]: Tervetuloa takaisin esitykseen.\n[B]: Kiva olla täällä.\n[A]: Kerro meille, mitä olet työstänyt…",
    "scriptHint": "Merkitse jokainen rivi [A], [B] jne. määrittääksesi kaiuttimen.",
    "turns": "kääntyy",
    "chars": "merkkiä",
    "scriptRequired": "Liitä ensin skripti",
    "modelRequired": "Valitse ensin malli",
    "voicesIncomplete": "Kaiuttimet {speakers} tarvitsevat äänen",
    "missingVoices": "Kaiuttimet {speakers} tarvitsevat äänen",
    "unknownSpeaker": "{n} kierrosta viittaa kaiuttimeen, jota ei ole määritetty",
    "undefinedSpeakerWarn": "{n} kierrosta viittaa kaiuttimeen, jota ei ole määritetty",
    "undefinedSpeaker": "Tuntematon puhuja [{id}]",
    "turnTooLong": "{n} kierrosta ylittää {max} merkkiä",
    "oversizeWarning": "{n} kierrosta ylittää {max} merkkiä",
    "overLimit": "yli rajan",
    "recordEpisode": "Nauhoita jakso",
    "recordRemaining": "Ennätys jäljellä",
    "recording": "Tallennetaan…",
    "allDone": "Jakso valmis",
    "regen": "Nauhoita tämä rivi uudelleen",
    "downloadAll": "Lataa kaikki",
    "download": "Lataa",
    "dialogue": "Dialogi",
    "empty": "Merkityt käännökset näkyvät täällä kirjoittaessasi.",
    "statusPending": "vireillä",
    "statusRunning": "käynnissä",
    "statusDone": "tehty",
    "statusFailed": "epäonnistunut",
    "advanced": "Lisäasetukset",
    "regenerate": "Luo uudelleen",
    "style": "Tyyli",
    "episodeReady": "Jakso valmis",
    "episodeStatus": "{done} valmista, {failed} epäonnistui",
    "generateRest": "Luo loput",
    "generateEpisode": "Luo jakso",
    "speakersNeedVoice": "{names} tarvitsevat äänen",
    "intro": "Määritä puhujasi vasemmalla yllä, jokaiselle oma ääni."
  },
  "dubbingPlayground": {
    "title": "Dubbaus",
    "subtitle": "Käännä puhuttua ääntä muille kielille",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Kopiointimalleja ei ole saatavilla",
    "searchModels": "Hae…",
    "sourceFile": "Lähdetiedosto",
    "removeFile": "Poista tiedosto",
    "dropOrClick": "Pudota tiedosto tai lataa se napsauttamalla",
    "fileHint": "ääni/* tai video/*, enintään {mb} Mt",
    "fileTooLarge": "Tiedosto ylittää kokorajoituksen",
    "fileRequired": "Valitse ensin lähdetiedosto",
    "modelRequired": "Valitse ensin malli",
    "targetRequired": "Valitse vähintään yksi kohdekieli",
    "sourceLang": "Alkuperäinen kieli",
    "targetLangs": "Kohdekielet",
    "singleTargetHint": "Yksi kohde lähetystä kohden – valitse useita eri töihin.",
    "options": "Vaihtoehdot",
    "numSpeakers": "Kaiuttimien määrä",
    "numSpeakersPlaceholder": "automaattinen tunnistus",
    "optional": "valinnainen",
    "dropBackground": "Pudota taustaääni",
    "dropBackgroundHint": "Strippaa musiikkia + ympäristön melua lähteestä",
    "watermark": "Äänen vesileima",
    "watermarkHint": "Äänetön vesileima alkuperästä",
    "submitting": "Lähetetään…",
    "submitted": "Lähetetty {n} kopioita",
    "dub": "Dubbaa",
    "dubMany": "Kopioi {n} kielelle",
    "jobs": "Työpaikat",
    "empty": "Lähetetyt työt näkyvät täällä.",
    "fetch": "Hae",
    "download": "Lataa",
    "jobDone": "Dubbaus valmis: {name}",
    "jobFailed": "Kopiointi epäonnistui: {name}",
    "statusDubbing": "jälkiäänitys",
    "statusDone": "tehty",
    "statusFailed": "epäonnistunut",
    "dubReady": "Dubbaus valmis: {name}",
    "pickTargetLang": "Valitse vähintään yksi kohdekieli",
    "clearAllJobs": "Poistetaanko kaikki työt historiasta?",
    "targetLangHint": "Yksi kohdekieli per lähetys — useammat luovat rinnakkaisia töitä.",
    "profanityHint": "Poista karkea kieli dubbauksesta",
    "disableCloningHint": "Käytä valmiita ääniä kloonauksen sijaan"
  },
  "voiceLibrary": {
    "title": "Äänikirjasto",
    "subtitle": "Hallitse kloonattuja ääniäsi",
    "cloneNew": "Kloonin ääni",
    "cloneFirst": "Kloonaa ensimmäinen äänesi",
    "empty": "Ei vielä kloonattuja ääniä.",
    "emptyHint": "Kloonaa oma äänesi käyttääksesi sitä TTS:ssä, selostuksessa, äänikirjoissa ja muissa.",
    "delete": "Poista",
    "deleted": "Ääni poistettu",
    "confirmDelete": "Poistetaanko \"{name}\"? Tätä ei voi kumota.",
    "statusActive": "aktiivinen",
    "statusErrored": "erehtynyt",
    "statusDeleting": "poistamalla",
    "wizardTitle": "Kloonaa ääni",
    "stepProgress": "Vaihe {step}/{total}",
    "name": "Äänen nimi",
    "namePlaceholder": "Minun ääneni",
    "nameRequired": "Nimi vaaditaan",
    "description": "Kuvaus",
    "descriptionPlaceholder": "Rauhallinen, keskusteleva, kerrontaystävällinen…",
    "optional": "valinnainen",
    "samples": "Ääninäytteet",
    "filesRequired": "Lisää vähintään yksi ääninäyte",
    "addSamples": "Lisää ääninäytteitä",
    "samplesHint": "1-25 klippiä, ~30 s - 3 min. Yhteensä enintään 200 MB.",
    "consentBanner": "Puheen kloonaus on tehokas työkalu, jota voidaan käyttää väärin. Kirjaamme alla olevan kappaleen hyväksymisen kloonatun äänen rinnalle.",
    "consentMissing": "Suostumusteksti ei ole saatavilla.",
    "consentAccept": "Olen lukenut ja hyväksyn yllä olevan kappaleen.",
    "consentRequired": "Sinun on hyväksyttävä suostumuskohta",
    "consentFailed": "Suostumustekstiä ei voitu ladata",
    "consentRecorded": "Suostumus tallennettu",
    "review": "Tarkista",
    "back": "Takaisin",
    "next": "Jatka",
    "submit": "Kloonin ääni",
    "cloning": "Kloonataan…",
    "cloned": "Ääni kloonattu",
    "stepSamplesLabel": "Näytteitä",
    "stepConsentLabel": "Suostumus",
    "stepReviewLabel": "Tarkista"
  },
  "ttsPlayground": {
    "title": "Tekstistä puheeksi",
    "subtitle": "Muuta teksti eläväksi puheeksi",
    "model": "Malli",
    "pickModel": "Valitse malli",
    "noModels": "Puhemalleja ei ole saatavilla",
    "searchModels": "Hae puhemalleja…",
    "voice": "Ääni",
    "voicesAvailable": "ääniä",
    "voiceSearchPlaceholder": "Hae ääniä…",
    "voiceNoMatch": "Ei vastaavia ääniä",
    "voicesFailed": "Puheluetteloa ei voitu ladata",
    "fallbackVoices": "varaääniä",
    "text": "Teksti",
    "textPlaceholder": "Kirjoita tai liitä teksti, jonka haluat puhua ääneen…",
    "textRequired": "Kirjoita tekstiä",
    "modelRequired": "Valitse ensin malli",
    "voiceRequired": "Ole hyvä ja valitse ääni",
    "parameters": "Ääniasetukset",
    "stability": "Vakaus",
    "expressive": "Ilmeikäs",
    "stable": "Vakaa",
    "similarityBoost": "Samankaltaisuuden lisäys",
    "style": "Tyylin liioittelua",
    "speakerBoost": "Kaiuttimen tehostus",
    "speakerBoostHint": "Parantaa samankaltaisuutta alkuperäisen äänen kanssa",
    "speed": "Nopeus",
    "outputFormat": "Tulostusmuoto",
    "language": "Kieli vihje",
    "languagePlaceholder": "automaattinen tunnistus",
    "languageHint": "ISO-639-1-koodi (en, de, fr…)",
    "generate": "Luo puhe",
    "generating": "Luodaan…",
    "generated": "Puhe luotu",
    "tracks": "Luotu ääni",
    "empty": "Kirjoita teksti ja klikkaa Luo.",
    "download": "Lataa",
    "modelSelect": "Valitse malli",
    "voiceSelect": "Valitse ääni",
    "voicesCount": "ääntä",
    "voicesSearchPlaceholder": "Etsi ääniä…",
    "advanced": "Lisäasetukset",
    "previousText": "Edellinen teksti (prosodia-konteksti)",
    "previousTextPlaceholder": "Mitä juuri ennen tätä osaa sanottiin…",
    "nextText": "Seuraava teksti",
    "nextTextPlaceholder": "Mitä tulee heti sen jälkeen…",
    "textNormalization": "Tekstin normalisointi",
    "normAuto": "Auto",
    "normOn": "Päällä",
    "normOff": "Pois",
    "dictionaries": "Ääntämisen sanakirjat",
    "dictionaryAdd": "lisää",
    "dictionaryHint": "Valinnainen — lisää omia ääntämis-ID:itä",
    "inspirationHint": "Tarvitsetko inspiraatiota? Klikkaa esimerkkiä — teksti latautuu kenttään.",
    "history": "Historia",
    "historyEmpty": "Toistaiseksi tyhjä.",
    "historyClear": "Tyhjennä historia",
    "historyClearConfirm": "Poistetaanko kaikki luodut äänet historiasta?",
    "historyApplySettings": "Käytä asetuksia",
    "historyRemove": "Poista historiasta",
    "errLogin": "Kirjaudu sisään luodaksesi",
    "errApiKey": "API-avainta ei löytynyt",
    "errEmptyText": "Teksti on tyhjä",
    "entryDelete": "Poista merkintä",
    "textInputPlaceholder": "Kirjoita tai liitä tekstisi tähän…",
    "samples": {
      "advert": {
        "title": "Mainos",
        "desc": "Energinen kuuluttajan ääni",
        "text": "Imagine waking up every morning refreshed — ready to take on the day. That is exactly the promise of our new Sleep Pro™ pillow series."
      },
      "audiobook": {
        "title": "Äänikirja",
        "desc": "Rauhallinen kertojan ääni",
        "text": "Once upon a time in an old mountain village, high above the clouds, there lived a young girl with bright eyes who looked up at the stars every evening."
      },
      "news": {
        "title": "Uutiset",
        "desc": "Selkeä uutistoimittajan ääni",
        "text": "Good evening, here are today's top stories. A new research project from Munich shows that artificial intelligence can now predict household energy use with high accuracy."
      },
      "podcast": {
        "title": "Podcast",
        "desc": "Rento tervehdys",
        "text": "Hey and a warm welcome back to our latest episode — great to have you with us! Today we are talking about a topic that affects all of us."
      }
    }
  },
  "imagePlayground": {
    "title": "Kuvan leikkikenttä",
    "back": "Takaisin",
    "history": "Historia",
    "playground": "Leikkipaikka",
    "code": "Koodi",
    "configuration": "Kokoonpano",
    "configDescription": "Määritä kuvan luontiparametrit.",
    "model": "Malli",
    "loadingModels": "Ladataan malleja...",
    "selectModel": "Valitse malli",
    "searchModels": "Hae malleja...",
    "aspectRatio": "Kuvasuhde",
    "resolution": "Resoluutio",
    "imageUrlsOptional": "Kuvien URL-osoitteet (valinnainen, enintään {count})",
    "imageUrlOptional": "Kuvan URL-osoite (valinnainen)",
    "imageUrlPlaceholder": "https://example.com/image.png",
    "addImageUrl": "Lisää kuvan URL-osoite",
    "startFrameUrlOptional": "Aloituskehyksen URL-osoite (valinnainen)",
    "startFrameUrlPlaceholder": "https://example.com/start-frame.png",
    "endFrameUrlOptional": "Loppukehyksen URL-osoite (valinnainen)",
    "endFrameUrlPlaceholder": "https://example.com/end-frame.png",
    "quality": "Laatu",
    "basic": "Perus",
    "high": "Korkea",
    "duration": "Kesto",
    "sound": "Ääni",
    "numberOfImages": "Kuvien määrä",
    "width": "Leveys",
    "height": "Korkeus",
    "prompt": "Kehote",
    "promptPlaceholder": "esim. suloinen merisaukon vauva, joka kelluu selässään",
    "responseFormat": "Vastausmuoto",
    "url": "URL",
    "base64Json": "Base64 JSON",
    "generateImage": "Luo kuva",
    "generating": "Luodaan...",
    "result": "Tulos",
    "resultDescription": "Luomasi kuva näkyy täällä.",
    "creatingMasterpiece": "Luodaan mestariteostasi...",
    "pleaseWait": "Tämä voi kestää hetken",
    "readyToCreate": "Valmis luomaan",
    "readyToCreateDescription": "Kirjoita kehote ja napsauta Luo nähdäksesi taikuuden tapahtuvan.",
    "download": "Lataa",
    "codeSnippets": "Koodinpätkät",
    "codeSnippetsDescription": "Käyttövalmis koodi nykyiselle kokoonpanollesi.",
    "copy": "Kopioi",
    "copied": "Kopioitu leikepöydälle",
    "searchGenerations": "Etsi sukupolvia...",
    "generations": "sukupolville",
    "noGenerations": "Ei vielä sukupolvia",
    "createFirstImage": "Luo ensimmäinen kuvasi nähdäksesi sen täällä",
    "noResults": "Tuloksia ei löytynyt",
    "tryDifferentSearch": "Kokeile toista hakutermiä",
    "clearAll": "Tyhjennä kaikki",
    "loadSettings": "Lataa asetukset",
    "close": "Sulje",
    "anytime": "milloin tahansa",
    "preview": "Esikatselu",
    "delete": "Poista",
    "video": "Video",
    "image": "Kuva",
    "editPrompt": "Muokkaa napsauttamalla",
    "chat": "Keskustelu",
    "uploadPreview": "Lataa esikatselu",
    "selectModelError": "Valitse malli",
    "imageQuery": "Mitä näet tässä kuvassa?",
    "failedToLoadModels": "Mallien lataaminen epäonnistui",
    "promptRequired": "Anna kehote",
    "modelRequired": "Valitse malli",
    "removedFromHistory": "Poistettu historiasta",
    "settingsLoaded": "Asetukset ladattu",
    "historyCleared": "Historia tyhjennetty",
    "imageGenerated": "Kuvan luominen onnistui",
    "noImageGenerated": "Kuvaa ei luotu",
    "failedToGenerate": "Kuvan luominen epäonnistui",
    "custom": "Mukautettu tila",
    "instrumental": "Instrumentaalinen",
    "style": "Tyyli",
    "stylePlaceholder": "esim. K-pop, Heavy Metal, Jazz",
    "referenceImages": "Viitekuvat",
    "searchStyles": "Hakutyylejä…",
    "noneSelected": "Ei valittu",
    "thinkingMode": "Ajatustila",
    "brush": "Harja",
    "low": "Matala",
    "left": "Vasen",
    "right": "Oikein",
    "errEmptyPrompt": "Kehote on tyhjä",
    "samples": {
      "ghibli": {
        "title": "Anime / Studio Ghibli -tyyli"
      },
      "portrait": {
        "title": "Muotokuva",
        "desc": "Hasselblad-tyylinen studio-look"
      },
      "cinematic": {
        "title": "Elokuvallinen",
        "desc": "Elokuvamainen laajakuva, kultainen hetki"
      },
      "illustration": {
        "title": "Kuvitus",
        "desc": "Anime / Studio Ghibli -tyyli"
      },
      "product": {
        "title": "Tuote",
        "desc": "Korkealuokkainen studio-renderöinti"
      }
    }
  },
  "terms": {
    "shared": {
      "legalDocument": "Lakiasiakirja",
      "lastUpdated": "Viimeksi päivitetty: 12. joulukuuta 2025",
      "contents": "Sisältö",
      "by": "kirjoittaja"
    },
    "hero": {
      "title": "Palveluehdot",
      "description": "Tervetuloa Api.Airforceen. Lue nämä ehdot huolellisesti ennen palveluidemme käyttöä."
    },
    "introduction": {
      "title": "Johdanto",
      "content": "Tervetuloa Api.Airforceen, joka on <strong>Deloxity, LLC:n</strong> tuote. Nämä käyttöehdot säätelevät pääsyäsi verkkosivustoomme, kojelautaamme, sovellusliittymiimme ja tukipalveluihimme ja niiden käyttöä. Luomalla tilin, siirtymällä alustallemme tai käyttämällä mitä tahansa päätepistettä sitoudut noudattamaan näitä ehtoja ja sitoudut niihin."
    },
    "sections": {
      "overview": {
        "title": "1. Palvelun yleiskatsaus",
        "content1": "Api.Airforce tarjoaa ilmaisia ja maksullisia suunnitelmia API-pohjaiseen tekoälymalliin pääsyyn, keskustelujen suorittamiseen ja kuvien luomiseen. Taustaa käyttää Axum (Rust) ja se valvoo API-nopeusrajoituksia, todennusta ja analytiikkakeräystä.",
        "content2": "Palvelu antaa rekisteröidyille käyttäjille mahdollisuuden käyttää ilmaisia, premium- ja yleissopimuksia, joilla kullakin on eri käyttörajoitukset ja käyttöoikeustasot. Maksulliset suunnitelmat käsitellään Creemin kautta."
      },
      "eligibility": {
        "title": "2. Kelpoisuus",
        "content": "Sinun tulee olla vähintään 18-vuotias tai sinulla on oltava laillisen huoltajan suostumus käyttääksesi palveluitamme. Sovellusliittymiemme käyttö lainkäyttöalueilla, joilla se on laissa kielletty, ei ole sallittua."
      },
      "account": {
        "title": "3. Tilin rekisteröinti ja suojaus",
        "intro": "Tili vaaditaan todennettujen ominaisuuksien, kuten premium-mallien, kuvien luomisen ja korkeampien nopeusrajojen, käyttämiseen. Hyväksyt:",
        "item1": "Anna tarkat tiedot rekisteröinnin yhteydessä",
        "item2": "Säilytä tunnistetietojesi turvallisuus",
        "item3": "Vastaa kaikista toiminnoista tililläsi tai API-avaimellasi",
        "item4": "Ilmoita meille välittömästi luvattomasta käytöstä"
      },
      "usage": {
        "title": "4. API:n käyttö ja nopeuden rajoitus",
        "intro": "Jokaisella suunnitelmalla on erityiset hintarajat, jotka on suunniteltu varmistamaan oikeudenmukainen käyttö:",
        "freePlan": "Ilmainen suunnitelma",
        "freeLimits": "1 rekv/min, 1000 rekv/päivä",
        "premiumPlan": "Premium-suunnitelma",
        "premiumLimits": "Korkeammat rajat ovat voimassa",
        "masterPlan": "Yleissuunnitelma",
        "masterLimits": "Enimmäisrajat",
        "warning": "Hintarajoitusten väärinkäyttö tai yritys kiertää niitä voi johtaa keskeyttämiseen tai irtisanomiseen.",
        "budgetTitle": "Maksullisten suunnitelmien kuukausikustannusbudjetti",
        "budgetContent": "Yllä olevien minuutti- ja päiväpyyntörajojen ylittäviin maksullisiin Premium- ja Master-tilauksiin sisältyy myös kuukausittainen kustannusperusteinen luottobudjetti, joka on kymmenen kertaa suunnitelman hinta (Premium: 9 990 krediittiä, Master: 24 990 krediittiä). Jokainen pyyntö kuluttaa krediittejä sen todellisen token-kustannusten mukaan. Tämän budjetin 100 % saavuttaminen estää tilapäisesti maksullisen suunnitelman API:n käytön seuraavaan laskutusjaksoon asti tai kunnes ostat suunnitelman täyttöpaketin."
      },
      "payments": {
        "title": "5. Maksut ja tilaukset",
        "content": "Maksulliset tilaukset (Premium, Master) laskutetaan Creemin kautta. Tilaamalla valtuutat toistuvat maksut peruutukseen asti. Tilauksesi uusitaan automaattisesti jokaisen laskutuskauden lopussa, ellet peruuta sitä etukäteen.",
        "refillTitle": "Suunnitelman täyttö (kertaluonteinen)",
        "refillContent": "Premium- ja Master-tilaajat voivat ostaa kertaluonteisen tilauksen uudelleentäytön normaalihintaan (9,99 dollaria / 24,99 dollaria) nollatakseen välittömästi kuukausittaisen luottobudjettinsa muuttamatta aktiivista tilaustaan. Täyttöjä ei palauteta, kun niitä on käytetty. Ne eivät pidennä laskutusjaksoa, muuta suunnitelmaa tai uusi tilausta.",
        "mor": "<strong>Entinen kauppias:</strong> Tilausprosessimme suorittaa verkkojälleenmyyjämme <a href=\"https://creem.io\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-primary hover:underline\">Creem.io</a>. Creem.io on kaikkien tilaustemme kauppias. He tarjoavat kaikki asiakaspalvelukyselyt ja hoitavat palautukset."
      },
      "refunds": {
        "title": "6. Hyvityskäytäntö",
        "content": "Katso erillisestä <1>hyvityskäytännöstämme</1> yksityiskohtaiset tiedot hyvityskelpoisuudesta ja menettelyistä."
      },
      "prohibited": {
        "title": "7. Kielletyt käyttötavat",
        "intro": "Sitoudut olemaan käyttämättä palvelua:",
        "item1": "Laittomat tarkoitukset tai toimet",
        "item2": "Immateriaalioikeuksien loukkaaminen",
        "item3": "Kilpailevien palvelujen rakentaminen ilman lupaa",
        "item4": "Luvaton API-käyttö tai kirjautumistietojen jakaminen",
        "item5": "Häirintä, väärinkäyttö tai haitallisen sisällön luominen",
        "item6": "Kielletty kaapiminen tai tietojen kerääminen",
        "warning": "Mikä tahansa väärinkäyttö voi johtaa välittömään tilin sulkemiseen ilman hyvitystä."
      },
      "ip": {
        "title": "8. Immateriaalioikeudet",
        "content": "Taustalähdekoodi, käyttöliittymä, logot, tavaramerkit ja muotoilu ovat Deloxity, LLC:n omaisuutta. API-mallit ja -ulostulot voivat kuulua kolmansien osapuolien tarjoajille heidän omien ehtojensa mukaisesti."
      },
      "availability": {
        "title": "9. Palvelun saatavuus ja muutokset",
        "content": "Pyrimme pitämään palvelumme saatavilla mahdollisimman vähän seisokkeja, mutta emme takaa keskeytymätöntä käyttöä. Saatamme muuttaa, keskeyttää tai lopettaa tiettyjen ominaisuuksien tarjoamisen ilman ennakkoilmoitusta."
      },
      "data": {
        "title": "10. Tiedonkeruu ja tietosuoja",
        "content1": "Keräämme analytiikkaa, kuten pyyntöjen määrät, IP-osoitteet, mallin käyttö- ja tilaustiedot palvelun parantamiseksi. Katso lisätietoja <1>tietosuojakäytännöstämme</1>.",
        "content2": "Käyttämällä palveluitamme hyväksyt tietojesi keräämisen, tallentamisen ja käytön tietosuojakäytännössämme kuvatulla tavalla."
      },
      "liability": {
        "title": "11. Vastuun rajoitus",
        "intro": "Lain sallimissa rajoissa Deloxity, LLC ja Api.Airforce eivät ole vastuussa vahingoista, jotka johtuvat:",
        "item1": "Palvelun käyttökatkos tai käyttökatkos",
        "item2": "Tietojen katoaminen tai korruptio",
        "item3": "Kolmannen osapuolen palveluntarjoajan virheet",
        "item4": "Käyttäjien sovellusliittymän väärinkäyttö"
      },
      "termination": {
        "title": "12. Irtisanominen",
        "intro": "Voimme jäädyttää tai lopettaa tilisi tai API-käyttöösi milloin tahansa:",
        "item1": "Näiden ehtojen rikkominen",
        "item2": "Epäilty väärinkäyttö tai petos",
        "item3": "Lainmukaisuusvaatimukset"
      },
      "law": {
        "title": "13. Sovellettava laki",
        "content": "Näitä ehtoja säätelevät <strong>Delawaren osavaltion (Yhdysvallat)</strong> lait, joita sovelletaan Delawaressa tehtyihin ja toteutettuihin sopimuksiin lainvalintaperiaatteista riippumatta."
      },
      "contact": {
        "title": "14. Ota yhteyttä",
        "intro": "Jos sinulla on kysyttävää näistä käyttöehdoista, ota meihin yhteyttä osoitteeseen <1>support@api.airforce</1>",
        "company": "Deloxity, LLC",
        "address1": "1111B S Governors Ave STE 48433",
        "address2": "Dover, DE 19904",
        "address3": "Yhdysvallat"
      }
    },
    "sidebar": {
      "overview": "Yleiskatsaus",
      "eligibility": "Kelpoisuus",
      "account": "Tili ja suojaus",
      "usage": "API-käyttö",
      "payments": "Maksut",
      "refunds": "Hyvitykset",
      "prohibited": "Kielletyt käyttötavat",
      "ip": "Immateriaaliomaisuus",
      "availability": "Palvelun saatavuus",
      "data": "Tiedot ja tietosuoja",
      "liability": "Vastuu",
      "termination": "Irtisanominen",
      "law": "Sovellettava laki",
      "contact": "Ota yhteyttä"
    }
  },
  "privacy": {
    "shared": {
      "privacyMatters": "Yksityisyytesi on tärkeä",
      "lastUpdated": "Viimeksi päivitetty: 12. joulukuuta 2025",
      "contents": "Sisältö"
    },
    "hero": {
      "title": "Tietosuojakäytäntö",
      "description": "Olemme sitoutuneet suojelemaan yksityisyyttäsi ja olemaan avoimia sen suhteen, kuinka käsittelemme tietojasi."
    },
    "introduction": {
      "content": "Api.Airforce, <strong>Deloxity, LLC:n</strong> tuote, on sitoutunut suojaamaan yksityisyyttäsi. Tämä tietosuojakäytäntö selittää, kuinka keräämme, käytämme, tallennamme ja jaamme tietojasi, kun käytät verkkosivustoamme, kojelautaamme ja sovellusliittymiämme."
    },
    "sections": {
      "collect": {
        "title": "1. Keräämämme tiedot",
        "intro": "Keräämme seuraavan tyyppisiä tietoja:",
        "item1": "Tilitiedot (käyttäjätunnus, hajautettu salasana, tilaussuunnitelma)",
        "item2": "API-avaimet ja todennustunnukset",
        "item3": "IP-osoitteet turvallisuutta, petostentorjuntaa ja analytiikkaa varten",
        "item4": "Mallin käyttötilastot ja pyyntölokit",
        "item5": "Maksu- ja tilaustiedot (Creemin kautta)"
      },
      "use": {
        "title": "2. Kuinka käytämme tietojasi",
        "intro": "Tietojasi käytetään:",
        "item1": "Tarjoa pääsy API-palveluihimme",
        "item2": "Todenna ja suojaa tilisi",
        "item3": "Noudata hintarajoituksia ja estä väärinkäyttö",
        "item4": "Paranna ja ylläpidä alustaa",
        "item5": "Käsittele maksuja ja hallitse tilauksia",
        "item6": "Noudata lakisääteisiä velvoitteita"
      },
      "storage": {
        "title": "3. Tietojen tallennus ja säilyttäminen",
        "content": "Kaikki tiedot säilytetään turvallisesti ja säilytetään vain niin kauan kuin on tarpeen tässä käytännössä kuvattuihin tarkoituksiin. Analyysit, kuten pyyntölokit ja IP-osoitteet, säilytetään toiminta- ja turvallisuustarkoituksiin.",
        "securityTitle": "Turvatoimenpiteet",
        "securityContent": "Käytämme alan standardien mukaisia suojauskäytäntöjä, kuten salausta lepotilassa ja kuljetuksen aikana, suojattuja todennusprotokollia ja säännöllisiä tietoturvatarkastuksia."
      },
      "thirdParty": {
        "title": "4. Kolmannen osapuolen palvelut",
        "content1": "Käytämme maksujen käsittelyyn luotettavia palveluntarjoajia, kuten <strong>Creem</strong>. Maksutietojasi ei koskaan tallenneta palvelimillemme.",
        "content2": "Kolmannen osapuolen mallintoimittajat voivat käsitellä tekoälymallien tuotoksia ja pyyntöjä omien ehtojensa ja käytäntöjensä mukaisesti."
      },
      "rights": {
        "title": "5. Sinun oikeutesi",
        "content": "Sinulla on oikeus tarkastella, korjata tai poistaa henkilötietojasi. Jos sinulla on tietosuojaan liittyviä kysymyksiä, ota meihin yhteyttä osoitteessa <1>support@api.airforce</1>"
      },
      "compliance": {
        "title": "6. Kansainvälinen tietosuojan noudattaminen",
        "intro": "Api.Airforce toimii kansainvälisten tietosuojamääräysten mukaisesti:",
        "eu": {
          "title": "🇪🇺 Euroopan unioni / ETA",
          "content": "Yleinen tietosuoja-asetus (GDPR) (EU) 2016/679. Tietojenkäsittelymme perustuu laillisiin perusteisiin, kuten suostumukseen (6 artiklan 1 kohdan a alakohta), sopimuksen toteuttamiseen (6 artiklan 1 kohdan b alakohta) ja oikeutettuihin etuihin (6 artiklan 1 kohdan f alakohta)."
        },
        "us": {
          "title": "🇺🇸 Yhdysvallat",
          "content": "California Consumer Privacy Act (CCPA), California Privacy Rights Act (CPRA). Kalifornian asukkailla on Cal. Civ. Säännöstö § 1798.100–1798.199, mukaan lukien oikeus kieltäytyä tietojen myynnistä."
        },
        "cn": {
          "title": "🇨🇳 Kiinan kansantasavalta",
          "content": "Henkilötietojen suojalaki (PIPL), kyberturvallisuuslaki ja tietoturvalaki. Rajat ylittävä tiedonsiirto noudattaa PIPL:n 3 lukua."
        },
        "ru": {
          "title": "🇷🇺 Venäjän federaatio",
          "content": "Liittovaltion laki nro 152-FZ henkilötiedoista. Venäjän kansalaisten henkilötietoja käsitellään paikallisten tietojen säilytys- ja lokalisointivaatimusten mukaisesti."
        }
      },
      "legalRights": {
        "title": "7. Sovellettavien lakien mukaiset oikeutesi",
        "intro": "Lainkäyttöalueestasi riippuen sinulla voi olla seuraavat oikeudet:",
        "item1": "Oikeus päästä käsiksi henkilötietoihisi ja saada niistä kopio (GDPR Art. 15, CCPA §1798.100)",
        "item2": "Oikeus oikaisuun (GDPR Art. 16, PIPL Art. 46)",
        "item3": "Poisto-oikeus (\"oikeus tulla unohdetuksi\") (GDPR Art. 17, CCPA §1798.105, PIPL Art. 47)",
        "item4": "Oikeus rajoittaa tai vastustaa käsittelyä (GDPR art. 18–21, PIPL Arts. 44–45)",
        "item5": "Oikeus tietojen siirrettävyyteen (GDPR Art. 20, CCPA §1798.130)",
        "contact": "Käytä oikeuksiasi ottamalla meihin yhteyttä osoitteeseen <1>privacy@api.airforce</1>. Vastaamme lainkäyttöalueesi lain edellyttämässä ajassa."
      },
      "changes": {
        "title": "8. Muutokset tähän käytäntöön",
        "content": "Saatamme päivittää tätä tietosuojakäytäntöä ajoittain vastaamaan teknologian, lainsäädännön tai toimintatapojen muutoksia. Huomattavista muutoksista tiedotetaan soveltuvien lakien edellyttämällä tavalla."
      },
      "contact": {
        "title": "9. Yhteystiedot",
        "company": "Deloxity, LLC",
        "address1": "1111B S Governors Ave STE 48433",
        "address2": "Dover, DE 19904",
        "address3": "Yhdysvallat",
        "inquiry": "Tietosuojatiedustelut: <1>privacy@api.airforce</1>"
      }
    },
    "sidebar": {
      "collect": "Keräämämme tiedot",
      "use": "Kuinka käytämme tietojasi",
      "storage": "Tietojen tallennus",
      "thirdParty": "Kolmannen osapuolen palvelut",
      "rights": "Sinun oikeutesi",
      "compliance": "Kansainvälinen vaatimustenmukaisuus",
      "legalRights": "Lailliset oikeudet",
      "changes": "Käytännön muutokset",
      "contact": "Ota yhteyttä"
    }
  },
  "refund": {
    "shared": {
      "refundInfo": "Hyvitystiedot",
      "lastUpdated": "Viimeksi päivitetty: 12. joulukuuta 2025",
      "contents": "Sisältö"
    },
    "hero": {
      "title": "Hyvityskäytäntö",
      "description": "Sitoumuksemme oikeudenmukaisiin ja avoimiin palautusmenettelyihin kaikissa tilaussuunnitelmissa."
    },
    "introduction": {
      "content": "Tämä hyvityskäytäntö selittää, miten <strong>Deloxity, LLC:n</strong> tuotteen Api.Airforcen kautta suoritettujen tilausten ja maksujen hyvitykset käsitellään. Ostamalla tilauksen hyväksyt tämän käytännön."
    },
    "sections": {
      "payments": {
        "title": "1. Tilausmaksut",
        "content": "Kaikki Premium- tai Master-pakettien maksut käsitellään <strong>Creemin</strong> kautta käyttämällä toistuvaa laskutusta, ellei ostohetkellä toisin mainita.",
        "secureTitle": "💳 Turvalliset maksut",
        "secureContent": "Kaikki tapahtumat salataan ja käsitellään turvallisesti Creemin kautta",
        "recurringTitle": "🔄 Toistuva laskutus",
        "recurringContent": "Tilaukset uusiutuvat automaattisesti, kunnes ne peruutetaan"
      },
      "eligibility": {
        "title": "2. Hyvityskelpoisuus",
        "intro": "Jotta voit saada hyvityksen, sinun on täytettävä seuraavat kriteerit:",
        "window": {
          "title": "7 päivän ikkuna",
          "content": "Hyvityspyynnöt on lähetettävä 7 päivän kuluessa alkuperäisestä maksusta"
        },
        "usage": {
          "title": "Käyttörajoitus",
          "content": "Et saa olla ylittänyt 20 % suunnitelmasi käyttökiintiöstä laskutusjakson aikana"
        },
        "terms": {
          "title": "Ehtojen noudattaminen",
          "content": "Ei hyvityksiä tileistä, jotka rikkovat käyttöehtoja"
        }
      },
      "nonRefundable": {
        "title": "3. Tuotteet, joita ei palauteta",
        "intro": "Emme tarjoa hyvitystä seuraavista:",
        "item1": "Osittain käytetyt tilausjaksot yli 7 päivän ikkunan",
        "item2": "Kertamaksut tai lisäpalvelut",
        "item3": "Tilit suljettiin käytäntörikkomusten vuoksi"
      },
      "request": {
        "title": "4. Hyvityksen pyytäminen",
        "intro": "Pyydä hyvitystä ottamalla yhteyttä tukitiimiimme osoitteessa <1>support@api.airforce</1> ja antamalla seuraavat tiedot:",
        "item1": "Tilisi käyttäjätunnus tai sähköpostiosoite",
        "item2": "Tosite maksusta (tapahtumatunnus tai kuitti)",
        "item3": "Hyvityspyynnön syy",
        "note": "Saatamme vaatia lisätietoja vaatimuksesi vahvistamiseksi."
      },
      "processing": {
        "title": "5. Hyvityksen käsittely",
        "content": "Hyväksytyt hyvitykset myönnetään alkuperäiselle maksutavallesi.",
        "timelineTitle": "Käsittelyn aikajana",
        "timelineContent": "Hyvitykset käsitellään yleensä <strong>5–10 arkipäivän</strong> kuluessa. Todellinen saapumisaika voi vaihdella pankin tai maksupalveluntarjoajan mukaan."
      },
      "compliance": {
        "title": "6. Sovellettavien lakien noudattaminen",
        "intro": "Tämä hyvityskäytäntö noudattaa asiaankuuluvia kuluttajansuojalakeja:",
        "eu": {
          "title": "🇪🇺 Euroopan unioni",
          "content": "Kuluttajanoikeusdirektiivissä 2011/83/EU säädetään 14 päivän peruuttamisoikeudesta tietyille verkkosopimuksille, ellei sitä ole vapautettu digitaalisen sisällön kulutuksen vuoksi ennen peruuttamisajan päättymistä (16 artikla)."
        },
        "us": {
          "title": "🇺🇸 Yhdysvallat",
          "content": "Sovellettavat osavaltion ja liittovaltion hyvitysmääräykset, mukaan lukien FTC:n ohjeet hyvitysehdotuksista ja Kalifornian siviililain §1723 vähittäiskaupan hyvityskäytännöistä."
        },
        "cn": {
          "title": "🇨🇳 Kiinan kansantasavalta",
          "content": "Kiinan sähköistä kaupankäyntiä koskeva laki ja kuluttajansuojalaki, jotka tarjoavat oikeudet palauttaa tai pyytää hyvityksiä määrättyjen ajanjaksojen kuluessa tietyille tapahtumille."
        },
        "ru": {
          "title": "🇷🇺 Venäjän federaatio",
          "content": "Laki kuluttajan oikeuksien suojelusta nro 2300-1, joka sallii hyvitysvaatimukset paikallisten säännösten mukaisesti, mukaan lukien etämyyntiä koskevat määräykset."
        }
      },
      "changes": {
        "title": "7. Muutokset tähän käytäntöön",
        "content1": "Voimme muuttaa tätä hyvityskäytäntöä milloin tahansa säilyttääksemme lainmukaisuuden kehittyvien kuluttajansuojakehysten kanssa maailmanlaajuisesti. Päivitykset näkyvät tällä sivulla viimeisimmän versiopäivämäärän kanssa.",
        "content2": "Asiakkaille, joita asia koskee, tiedotetaan tarvittaessa etukäteen merkittävistä muutoksista."
      },
      "contact": {
        "title": "8. Yhteystiedot",
        "company": "Deloxity, LLC",
        "address1": "1111B S Governors Ave STE 48433",
        "address2": "Dover, DE 19904",
        "address3": "Yhdysvallat",
        "inquiry": "Hyvityspyynnöt: <1>support@api.airforce</1>"
      }
    },
    "sidebar": {
      "payments": "Tilausmaksut",
      "eligibility": "Kelpoisuus",
      "nonRefundable": "Tuotteet, joita ei palauteta",
      "request": "Kuinka Pyydä",
      "processing": "Käsittely",
      "compliance": "Lainmukaisuus",
      "changes": "Käytännön muutokset",
      "contact": "Ota yhteyttä"
    }
  },
  "models": {
    "title": "Mallit",
    "subtitle": "Selaa kaikkia saatavilla olevia malleja, niiden hintoja ja reaaliaikaista tilaa.",
    "totalModels": "Mallit yhteensä",
    "stable": "Vakaa",
    "experimental": "Kokeellinen",
    "unstable": "Epävakaa",
    "operational": "Toiminnassa",
    "degraded": "Heikentynyt",
    "partialOutage": "Osittainen seisokki",
    "majorOutage": "Suuri sähkökatkos",
    "operationalDesc": "Vastaa normaalisti, latenssi alle 10s",
    "degradedDesc": "Vastaa, mutta hidas (latenssi ≥ 10 s)",
    "partialOutageDesc": "Ajoittain - oli äskettäin ylös tai juuri toipunut",
    "majorOutageDesc": "Täysin alas 2+ peräkkäisen tarkastuksen vuoksi",
    "healthCheckInterval": "Terveystarkastukset suoritetaan automaattisesti 15 minuutin välein.",
    "statusLegend": "Tilaselite",
    "rpmExplain": "Pyynnöt per minuutti",
    "rpdExplain": "Pyyntöjä päivässä",
    "pricingExplain": "Hinnat on esitetty erikseen syötteelle ja ulostulolle 1 miljoonaa merkkiä kohden.",
    "unitsExplain": "1 K = 1 000 (tuhatta) · 1 M = 1 000 000 (miljoonaa)",
    "freeTier": "Ilmainen taso",
    "premiumPlus": "Premium+",
    "uptimeHistory": "Käyttöaika (7 päivää)",
    "uptime": "käyttöaika",
    "noData": "Ei dataa",
    "daysAgo": "{days} päivää sitten",
    "today": "Tänään",
    "searchPlaceholder": "Hae malleja...",
    "filterTitle": "Suodata",
    "filterClearAll": "Tyhjennä kaikki",
    "filterTypeTitle": "Kirjoita",
    "filterProviderTitle": "Palveluntarjoaja",
    "filterProviderSearch": "Hae palveluntarjoajia...",
    "filterProviderNoMatch": "Palveluntarjoajia ei löytynyt.",
    "filterPriceTitle": "Hinta / 1M Tokens",
    "filterPriceMax": "Maksimi",
    "filterPriceAny": "Mikä tahansa",
    "filterPriceNote": "Koskee vain chat-malleja. Tämä suodatin ei vaikuta kuvamalleihin.",
    "filterReset": "Nollaa",
    "filterCapabilitiesTitle": "Ominaisuudet",
    "filterActive": "Aktiiviset suodattimet",
    "filterClose": "Sulje",
    "filterApply": "Käytä",
    "allPlans": "Kaikki suunnitelmat",
    "allStatus": "Kaikki tila",
    "allTypes": "Kaikki tyypit",
    "sortName": "Lajittele: Nimi",
    "sortPrice": "Lajittele: Hinta",
    "sortMultiplier": "Lajittele: Kerroin",
    "sortStatus": "Lajittele: Tila",
    "modelsFound": "malleja löytyi",
    "modelFound": "malli löytynyt",
    "groups": "ryhmiä",
    "noResults": "Yksikään malli ei vastaa suodattimiasi.",
    "price": "Hinta",
    "multiplier": "Kerroin",
    "plan": "Suunnittele",
    "status": "Tila",
    "model": "Malli",
    "priceHeader": "Hinta / 1 milj",
    "inputPrice": "Syöte",
    "outputPrice": "Lähtö",
    "free": "Ilmainen",
    "premium": "Premium",
    "master": "Mestari",
    "pay2go": "Pay2Go",
    "chat": "Keskustelu",
    "image": "Kuva",
    "video": "Video",
    "audio": "Ääni",
    "tts": "Tekstistä puheeksi",
    "music": "Musiikki",
    "sfx": "Äänitehosteet",
    "transcription": "Transkriptio",
    "audioTool": "Äänityökalut",
    "dubbing": "Dubbaus",
    "embedding": "Upottaminen",
    "loading": "Ladataan malleja...",
    "retry": "Yritä uudelleen",
    "unknown": "Tuntematon",
    "uptimeNotAvailable": "Käyttöaikatietoja ei ole tällä hetkellä saatavilla.",
    "pricing": "Hinnoittelu",
    "ourPrice": "Hintamme",
    "officialInput": "Virallinen syöttö",
    "officialOutput": "Virallinen tulos",
    "savings": "{percent} % halvempi",
    "contextWindow": "Konteksti-ikkuna",
    "freeContext": "Ilmainen suunnitelma",
    "freeContextDesc": "Ilmainen / Premium / Master",
    "fullContext": "Koko konteksti",
    "fullContextDesc": "Pay2Go / Full Context -lisäosa",
    "allPlansContext": "Kaikki suunnitelmat",
    "statusAndLatency": "Tila ja latenssi",
    "lastChecked": "Viimeksi tarkistettu",
    "responseTime": "Vastausaika",
    "compatibility": "tila",
    "apiModelName": "API-mallin nimi",
    "copy": "Kopioi",
    "copied": "Kopioitu!",
    "capabilities": "Ominaisuudet",
    "routes": "Reitit",
    "rowStreaming": "Suoratoisto",
    "rowStreamingHint": "Token-token SSE-tulostus – tarvitaan kirjoituskonetyyppisissä käyttöliittymissä.",
    "rowNonStreaming": "Ei-suoratoisto",
    "rowNonStreamingHint": "Yksi JSON-vastaus – yksinkertaisempi komentosarjoille ja erätöille.",
    "rowTools": "Toimintojen kutsuminen (työkalut)",
    "rowToolsHint": "Vaaditaan koodausagenteille (Claude Code, Cline, OpenCode, Aider).",
    "rowVision": "Vision syöttö",
    "rowVisionHint": "Hyväksyy kuvat base64:n tai URL-osoitteen kautta viestien hyötykuormassa.",
    "rowReasoning": "Päättelyn tulos",
    "rowReasoningHint": "Palauttaa erillisen argumentointisisältö-kentän, jossa on ajatusketju.",
    "notTestedYet": "Ei vielä testattu ylävirtaa vastaan.",
    "supportedTooltip": "Tuettu",
    "notSupportedTooltip": "Ei tuettu",
    "unknownTooltip": "Tuntematon (ei vielä tutkittu)",
    "perMillionChars": "/ 1M chars",
    "perThousandChars": "/ 1K merkk.",
    "perMillionCharsEstimated": "/ 1M chars (estimated)",
    "perAudioMinute": "/ ääni min",
    "perAudioHour": "/ ääni h",
    "perAudioSecond": "/ s ääntä",
    "perGeneration": "/ luonti",
    "perRequest": "/ pyyntö",
    "flatFee": "Kiinteä maksu",
    "perSecond": "Per sekunti",
    "fromShort": "alkaen",
    "inShort": "SISÄ",
    "outShort": "ULOS",
    "charsShort": "merkk.",
    "audioMinShort": "ääni min",
    "audioHourShort": "ääni h",
    "perGenerationShort": "luonti",
    "capReasoning": "Päättely",
    "capTools": "Työkalut",
    "capVision": "Näkö",
    "capStream": "Stream",
    "type": {
      "chat": "Chat",
      "image": "Image",
      "video": "Video",
      "tts": "TTS",
      "music": "Music",
      "sfx": "SFX",
      "transcription": "STT",
      "audioTool": "Audio",
      "dubbing": "Dubbing",
      "embedding": "Embedding"
    }
  },
  "reliability": {
    "architecture": "Arkkitehtuuri",
    "active": "Aktiivinen",
    "step1Title": "Yhtenäinen päätepiste",
    "step1Desc": "Yksi API OpenAI-, Anthropic- ja Gemini-formaateille",
    "step2Title": "Älykäs reititys",
    "step2Desc": "Valitsee nopeimman palveluntarjoajan viiveen ja saatavuuden mukaan",
    "step3Title": "Automaattinen vikasieto",
    "step3Desc": "Epäonnistuneet pyynnöt ohjataan välittömästi uudelleen vaihtoehtoisille kanaville",
    "delivered": "Aina Toimitettu",
    "sla": "99,9 %:n käyttöaika SLA kaikissa malleissa",
    "supportedFormats": "Tuetut muodot",
    "formatsDesc": "Kaikki muodot tunnistetaan automaattisesti ja reititetään oikealle palveluntarjoajalle.",
    "badge": "Nolla-seisonta-arkkitehtuuri",
    "headline1": "Aina päällä.",
    "headline2": "Luotettava AI.",
    "description": "Pyyntösi reititetään useiden palveluntarjoajien välillä kerralla. Jos toinen epäonnistuu, toinen ottaa vallan välittömästi. Ei yhtä epäonnistumispistettä.",
    "multiProviderTitle": "Useita palveluntarjoajia",
    "multiProviderDesc": "Monet palveluntarjoajat, joissa on automaattinen vikasieto. Pyyntösi löytävät aina toimivan polun, vaikka yksittäiset palveluntarjoajat eivät toimi.",
    "smartRoutingTitle": "Älykäs reititys",
    "smartRoutingDesc": "Latenssiin perustuva kanavavalinta prioriteettipainotuksella. Nopein palveluntarjoaja voittaa joka kerta.",
    "cta": "Aloita",
    "ctaDocs": "Näytä dokumentaatio"
  },
  "admin": {
    "label": "Ylläpito",
    "themeToggle": "Vaihda teema",
    "loading": "Ladataan järjestelmänvalvojan tietoja...",
    "permissionRequired": {
      "title": "Lupa vaaditaan",
      "bodyPrefix": "Nykyinen roolisi ei anna pääsyä tähän osioon. Pyydä järjestelmänvalvojaa lisäämään",
      "bodySuffix": "lupa johonkin rooleistasi."
    },
    "sidebar": {
      "groups": {
        "dashboard": "Kojelauta",
        "analytics": "Analytiikka",
        "management": "Hallinto",
        "system": "Järjestelmä",
        "security": "Turvallisuus"
      },
      "items": {
        "overview": "Yleiskatsaus",
        "revenue": "Tulot",
        "analyticsTopUsers": "Parhaat käyttäjät",
        "analyticsModels": "Mallin käyttö",
        "analyticsUserCosts": "Käyttäjäkustannukset",
        "analyticsSignups": "Ilmoittautumiset",
        "analyticsProviders": "Palveluntarjoajan reititys",
        "users": "Käyttäjät",
        "models": "Mallit",
        "providerKeys": "Palveluntarjoajan avaimet",
        "roles": "Roolit",
        "referrals": "Viittaukset",
        "supportTickets": "Tukiliput",
        "emailTemplates": "Sähköpostimallit",
        "health": "Terveystarkastukset",
        "smartRouting": "Älykäs reititys",
        "pricing": "Dynaaminen hinnoittelu",
        "platformConstraints": "Alustan rajoitukset",
        "logs": "Lokit",
        "errorInspector": "Virhe tarkastaja",
        "suspiciousAccounts": "Epäilyttävät tilit",
        "blockedIps": "Estetyt IP-osoitteet",
        "auditLog": "Tarkastusloki",
        "trafficIntercept": "Liikennekatsastus"
      }
    },
    "titles": {
      "overview": "Kojelauta",
      "revenue": "Tuloanalyysi",
      "users": "Käyttäjien hallinta",
      "analytics": "Analyysi · Yleiskatsaus",
      "analyticsTopUsers": "Analyysi · Parhaat käyttäjät",
      "analyticsModels": "Analyysi · Mallin käyttö",
      "analyticsUserCosts": "Analyysi · Käyttäjäkustannukset",
      "analyticsSignups": "Analyysi · Kirjautumiset",
      "analyticsProviders": "Analytics · Palveluntarjoajan reititys",
      "models": "Mallit",
      "providerKeys": "Palveluntarjoajan avaimet",
      "referrals": "Suositusohjelma",
      "roles": "Roolit ja käyttöoikeudet",
      "health": "Terveystarkastukset",
      "smartRouting": "Älykäs reititys",
      "pricing": "Dynaaminen hinnoittelu",
      "platformConstraints": "Alustan rajoitukset",
      "logs": "Järjestelmälokit",
      "errorInspector": "Virhe tarkastaja",
      "suspiciousAccounts": "Epäilyttävät tilit",
      "auditLog": "Tarkastusloki",
      "trafficIntercept": "Liikennekatsastus",
      "blockedIps": "Estetyt IP-osoitteet",
      "supportTickets": "Tukiliput",
      "emailTemplates": "Sähköpostimallit"
    },
    "emailTemplates": {
      "title": "Sähköpostimallit",
      "description": "Live-esikatselu jokaisesta tapahtumasähköpostista, jonka taustajärjestelmä voi lähettää. Vaihda kieltä nähdäksesi tarkalleen, mitä käyttäjät saavat kullakin alueella. Esimerkkiarvot käyttävät paikkamerkkiä käyttäjänimeä ja ei-toiminnallista merkkiä.",
      "from": "Lähettäjä:",
      "subject": "Aihe:",
      "language": "Kieli:",
      "refresh": "Päivitä",
      "retry": "Yritä uudelleen",
      "loadFailed": "Mallien lataaminen epäonnistui",
      "couldNotLoad": "Sähköpostimalleja ei voitu ladata: {error}",
      "dryRun": "DRY-RUN — SMTP2GO_API_KEY ei asetettu, sähköpostit kirjataan lokiin, mutta niitä ei lähetetä",
      "live": "Suora lähetys SMTP2GO:n kautta",
      "empty": "Ei rekisteröityjä malleja.",
      "placeholder": "Valitse malli vasemmalta esikatselua varten.",
      "tabs": {
        "preview": "HTML-esikatselu",
        "text": "Pelkkä teksti",
        "source": "HTML lähde"
      },
      "theme": {
        "label": "Teema:",
        "auto": "Automaattinen",
        "light": "Kevyt",
        "dark": "Tumma"
      }
    },
    "overview": {
      "window": {
        "24h": "24h",
        "7d": "7D",
        "30d": "30D",
        "90d": "90D",
        "ytd": "YTD"
      },
      "export": "Vie",
      "loading": "Ladataan yleiskatsausta...",
      "keyMetrics": "Keskeiset mittarit",
      "allLink": "all",
      "now": "now",
      "minShort": "min",
      "hourShort": "h",
      "dayShort": "d",
      "hour0": "00 h",
      "hour12": "12 h",
      "hourNow": "now",
      "delta": {
        "na": "—"
      },
      "status": {
        "title": "Yleiskatsaus",
        "asOf": "Alkaen",
        "live": "live"
      },
      "error": {
        "title": "Yleiskatsauksen lataaminen epäonnistui",
        "retry": "Yritä uudelleen"
      },
      "kpi": {
        "totalRevenue": "Kokonaistulot",
        "totalUsers": "Käyttäjiä yhteensä",
        "payments": "Maksut",
        "payingUsers": "Maksavat käyttäjät",
        "mom": "MoM"
      },
      "today": {
        "eyebrow": "Tänään",
        "live": "live",
        "requests": "Pyynnöt",
        "tokens": "Tokenit",
        "images": "Kuvat",
        "activeUsers": "Aktiiviset käyttäjät",
        "last24h": "viimeiset 24h",
        "dailyAvg": "päivittäinen keskim"
      },
      "chart": {
        "eyebrow": "Tulot · Uudet käyttäjät",
        "caption": "Päivittäinen liikevaihto (pylväät) · kumulatiivinen käyttäjäkanta (viiva)",
        "revenue": "Tulot",
        "users": "Käyttäjät",
        "usersCum": "Käyttäjiä yhteensä",
        "newUsers": "new"
      },
      "revenueByPlan": {
        "title": "Tulot suunnitelman mukaan"
      },
      "usersByPlan": {
        "title": "Käyttäjät suunnitelman mukaan",
        "total": "yhteensä",
        "paying": "maksamalla",
        "users": "käyttäjiä"
      },
      "insight": {
        "label": "Näkemys",
        "body": "Ilmainen → maksullinen -konversio {rate}% — toimialan mediaani ~2%."
      },
      "topUsers": {
        "title": "Parhaat käyttäjät · Tänään",
        "tokensSuffix": "rahakkeita",
        "imagesSuffix": "kuvia"
      },
      "recentPayments": {
        "title": "Viimeisimmät maksut"
      },
      "alerts": {
        "title": "Hälytykset · Vaatii huomiota",
        "openSuffix": "open"
      },
      "empty": {
        "noRevenue": "Ei tuloja tässä ikkunassa.",
        "noTopUsers": "Ei aktiivisia käyttäjiä tänään.",
        "noPayments": "Ei maksuja tässä ikkunassa.",
        "noAlerts": "Kaikki selvä."
      },
      "plan": {
        "master": "Mestari",
        "premium": "Premium",
        "full_context": "Full-Context",
        "pay2go": "Pay2Go",
        "credits": "Krediitit",
        "free": "Ilmainen",
        "other": "muu"
      }
    },
    "signups": {
      "title": "Ilmoittautumiset",
      "totalSuffix": "total",
      "peakLabel": "Huippu",
      "peakDay": "day",
      "export": "Vie",
      "loading": "Ladataan rekisteröitymisiä...",
      "now": "now",
      "minShort": "min",
      "hourShort": "h",
      "dayShort": "d",
      "delta": {
        "na": "—"
      },
      "error": {
        "title": "Ilmoittautumisten lataaminen epäonnistui",
        "retry": "Yritä uudelleen"
      },
      "window": {
        "24h": "24h",
        "7d": "7D",
        "30d": "30D",
        "90d": "90D",
        "ytd": "YTD"
      },
      "filter": {
        "range": "Alue",
        "bucket": "Kauha",
        "bucketDay": "Day",
        "bucketHour": "Hour",
        "quick": "Nopeasti"
      },
      "kpi": {
        "signups": "Ilmoittautumiset",
        "thisWeek": "This Week",
        "todayPrefix": "Tänään",
        "today": "tänään",
        "yesterday": "yesterday",
        "freeToPaid": "Ilmainen → Maksullinen",
        "activation": "Activation Rate",
        "firstRequest": "with 1st request",
        "avgPerDay": "Avg / Day",
        "mom": "MoM",
        "wow": "WoW"
      },
      "chart": {
        "eyebrow": "Signups · Stacked by Plan",
        "captionPrefix": "Cumulative reached",
        "peakPrefix": "Peak:",
        "peakOn": "on",
        "cumOverlay": "Cumulative overlay",
        "total": "Yhteensä",
        "cumulative": "Cumulative overlay"
      },
      "funnel": {
        "title": "Activation Funnel",
        "dropOffTotal": "Drop-off:",
        "dropOff": "Drop-off:",
        "signed_up": "Signed Up",
        "email_verified": "Sähköposti vahvistettu",
        "first_apikey": "Ensimmäinen API-avain luotu",
        "first_request": "1st request",
        "paid": "Maksettu",
        "verified": "Vahvistettu"
      },
      "geo": {
        "title": "Maantiede",
        "countries": "maissa",
        "others": "Other"
      },
      "sources": {
        "title": "Acquisition Sources"
      },
      "recent": {
        "title": "Latest Signups",
        "live": "live",
        "allLink": "All",
        "cols": {
          "user": "Käyttäjä",
          "email": "Sähköposti",
          "plan": "Suunnittele",
          "source": "lähde",
          "geo": "Geo",
          "verified": "Vahvistettu",
          "referrer": "Viittaaja",
          "ago": "Ago"
        },
        "verified": {
          "ok": "Vahvistettu",
          "pending": "pending"
        }
      },
      "empty": {
        "noGeo": "No country data in this window.",
        "noSources": "Tässä ikkunassa ei ole lähdetietoja.",
        "noSignups": "Ei ilmoittautumisia tässä ikkunassa."
      },
      "plan": {
        "master": "Mestari",
        "premium": "Premium",
        "full_context": "Full-Context",
        "pay2go": "Pay2Go",
        "free": "Ilmainen",
        "other": "muu",
        "credits": "Krediitit"
      }
    },
    "models": {
      "title": "Model Usage",
      "activeSuffix": "active models",
      "loading": "Loading models…",
      "trending": "trending",
      "unitReq": "Reqs",
      "unitTok": "Tokens",
      "sort": "Sort",
      "sortBy": {
        "tokens": "Tokens",
        "requests": "Requests",
        "cost": "Cost",
        "share": "Share"
      },
      "searchPlaceholder": "Search model…",
      "window": {
        "24h": "24h",
        "7d": "7D",
        "30d": "30D",
        "all": "all"
      },
      "error": {
        "title": "Failed to load model usage",
        "retry": "Retry"
      },
      "kpi": {
        "activeModels": "Active Models",
        "totalRequests": "Total Requests",
        "totalTokens": "Total Tokens",
        "totalCost": "Total Cost",
        "topShare": "Top-Model Share",
        "yesterday": "yesterday",
        "wow": "WoW",
        "perReq": "Req"
      },
      "providerTab": {
        "all": "All",
        "trending": "Trending",
        "anthropic": "Anthropic",
        "google": "Google",
        "openai": "OpenAI",
        "meta": "Meta",
        "deepseek": "DeepSeek",
        "xai": "xAI",
        "mistral": "Mistral",
        "alibaba": "Alibaba",
        "zai": "Z.AI",
        "moonshot": "Moonshot",
        "elevenlabs": "ElevenLabs",
        "other": "Other"
      },
      "pagination": {
        "of": "of",
        "loadMore": "load more"
      },
      "chart": {
        "requests": "Requests",
        "tokens": "Tokens"
      },
      "byPlan": {
        "title": "By Plan",
        "plansSuffix": "plans"
      },
      "topUsers": {
        "title": "Top Users",
        "allLink": "all"
      },
      "detail": {
        "loading": "Loading detail…",
        "empty": "Pick a model from the list to see details.",
        "provider": "provider",
        "costSuffix": "cost",
        "usersSuffix": "users",
        "modelSettings": "Model Settings",
        "range": "Range",
        "tabComingSoon": "This tab will land in a follow-up.",
        "tabs": {
          "overview": "Overview",
          "plans": "Plans",
          "top_users": "Top Users",
          "trend": "Trend · 30D",
          "cost": "Cost"
        },
        "kpi": {
          "requests": "Requests",
          "tokens": "Tokens",
          "cost": "Cost",
          "avgCostPerReq": "Avg Cost/Req",
          "uniqueUsers": "Unique Users"
        },
        "chart": {
          "eyebrow": "Requests · 28 Days"
        }
      },
      "empty": {
        "noRows": "No models match this filter.",
        "noByPlan": "No usage by plan in this window.",
        "noTopUsers": "No users hit this model in this window."
      },
      "plan": {
        "master": "Master",
        "premium": "Premium",
        "pay2go": "Pay2Go",
        "free": "Free",
        "premium_fc": "premium+fc",
        "master_fc": "master+fc",
        "pay2go_fc": "pay2go+fc",
        "free_fc": "free+fc",
        "other": "Other"
      }
    }
  },
  "common": {
    "on": "PÄÄLLÄ",
    "off": "POIS"
  },
  "playgrounds": {
    "eyebrow": "Leikkipaikka",
    "headerTrigger": "Kaikki playgroundit",
    "currentBadge": "nykyinen",
    "heroTitle": "Mitä haluat rakentaa tänään?",
    "heroSubtitle": "{count} Leikkikentät – Chat, kuvat, ääni, video. Valitse työkalu.",
    "filter": {
      "all": "Kaikki",
      "text": "Teksti & Chat",
      "visual": "Visuaalinen",
      "audio": "Ääni"
    },
    "chat": {
      "title": "Keskustelu",
      "desc": "Monimallikeskustelu työkaluilla ja visiolla"
    },
    "image": {
      "title": "Kuva",
      "desc": "Kuvan luominen — SDXL, FLUX, DALL·E"
    },
    "video": {
      "title": "Video",
      "desc": "Veo, Sora, Runway · tekstistä videoksi"
    },
    "music": {
      "title": "Musiikki",
      "desc": "Suno, Udio · kappaleita ja instrumentaaleja"
    },
    "tts": {
      "title": "Tekstistä puheeksi",
      "desc": "ElevenLabs, OpenAI · tekstistä puheeksi"
    },
    "sfx": {
      "title": "Äänitehosteet",
      "desc": "SFX & foley kehotteista"
    },
    "transcription": {
      "title": "Transkriptio",
      "desc": "Puhe tekstiksi · Kuiskaus, syvägrammi"
    },
    "voiceOver": {
      "title": "Ääniselostukset",
      "desc": "Studiolaatuiset äänet videoille"
    },
    "audioTools": {
      "title": "Äänityökalut",
      "desc": "Halkaise, litteroi, eristä"
    },
    "audiobook": {
      "title": "Äänikirjat",
      "desc": "Muuta kirjoja äänikirjoiksi"
    },
    "podcast": {
      "title": "Podcastit",
      "desc": "NotebookLM-tyyliset podcastit"
    },
    "dubbing": {
      "title": "Dubbaus",
      "desc": "Käännä videoita mille tahansa kielelle"
    },
    "voiceLibrary": {
      "title": "Äänikirjasto",
      "desc": "Selaa yli 900 ääntä"
    }
  },
  "voiceCloning": {
    "title": "Äänen kloonaus",
    "subtitle": "Kloonaa oma äänesi lyhyistä ääninäytteistä",
    "openLibrary": "Kirjasto"
  },
  "playgroundShared": {
    "errLogin": "Kirjaudu sisään",
    "errLoginGenerate": "Kirjaudu sisään luodaksesi",
    "errLoginRecord": "Kirjaudu sisään äänittääksesi",
    "errApiKey": "API-avainta ei löytynyt",
    "errApiKeyReload": "API-avainta ei löytynyt — päivitä sivu",
    "errPickModel": "Valitse malli",
    "errPickVoice": "Valitse ääni",
    "pickModel": "Valitse malli",
    "pickVoice": "Valitse ääni",
    "searchVoices": "Etsi ääniä…",
    "voicesCount": "ääntä",
    "voice": "Ääni",
    "targetVoice": "Kohde-ääni",
    "targetVoicePick": "Valitse kohde-ääni",
    "narratorVoice": "Kertojan ääni",
    "narratorVoicePick": "Valitse kertojan ääni",
    "advanced": "Lisäasetukset",
    "history": "Historia",
    "voiceSettings": "Ääniasetukset",
    "styleExaggeration": "Tyylin korostus",
    "speakerBoostHint": "Parantaa samankaltaisuutta alkuperäisen äänen kanssa",
    "language": "Kieli",
    "languageOptional": "Kieli (valinnainen)",
    "iso639Hint": "ISO-639-1 (en, de, fr…)",
    "autoDetect": "auto-detect",
    "previousText": "Edellinen teksti (prosodia-konteksti)",
    "previousTake": "Edellinen otto (prosodia-konteksti)",
    "previousTextPlaceholder": "Mitä juuri ennen tätä osaa sanottiin…",
    "nextText": "Seuraava teksti",
    "nextTextPlaceholder": "Mitä tulee heti sen jälkeen…",
    "nextTakePlaceholder": "Mitä tulee heti tämän oton jälkeen…",
    "textNormalization": "Tekstin normalisointi",
    "normAuto": "Auto",
    "normOn": "Päällä",
    "normOff": "Pois",
    "dictionaries": "Ääntämisen sanakirjat",
    "dictionaryAdd": "lisää",
    "dictionaryHint": "Valinnainen — lisää omia ääntämis-ID:itä",
    "entryRemove": "Poista merkintä",
    "historyClear": "Tyhjennä historia",
    "historyRemove": "Poista historiasta",
    "entryDelete": "Poista merkintä",
    "takeDelete": "Poista otto",
    "signIn": "Kirjaudu sisään",
    "signInToGenerate": "luodaksesi — pakettisi tai pay-as-you-go-saldosi otetaan automaattisesti käyttöön.",
    "inspirationPrompt": "Tarvitsetko inspiraatiota? Klikkaa esimerkkiä — kehote latautuu vasempaan kenttään.",
    "inspirationScript": "Tarvitsetko inspiraatiota? Klikkaa esimerkkiä — käsikirjoitus latautuu vasempaan kenttään.",
    "done": "valmis",
    "failed": "epäonnistui"
  },
  "videoPlayground": {
    "title": "Video",
    "videoReady": "Video valmis",
    "clearAll": "Poistetaanko kaikki videoluonnokset historiasta? Myös palvelimen tietueet poistetaan.",
    "duration": "Kesto",
    "samples": {
      "dronesShot": {
        "title": "Elokuvamainen drone-kuva"
      },
      "officeShot": {
        "title": "Luonnollinen toimistokuva"
      },
      "cinematic": {
        "title": "Elokuvallinen",
        "desc": "Elokuvamainen drone-kuva"
      },
      "product": {
        "title": "Tuote",
        "desc": "Studio-esittely 360°-pyörityksellä"
      },
      "abstract": {
        "title": "Abstrakti",
        "desc": "Nesteloop syaanissa/magentassa"
      },
      "talkingHead": {
        "title": "Puhuva Pää",
        "desc": "Luonnollinen toimistokuva"
      }
    }
  }
}
