|
@@ -0,0 +1,452 @@
|
|
|
|
|
+/* AppBrand.name ("Meetings") tarkoituksella pois jätetty — sovelluksen nimi pysyy muuttumattomana koodissa. */
|
|
|
|
|
+"AI Companion for Meet" = "Tekoälyavustaja Googlen Meetiin";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Yleistä */
|
|
|
|
|
+"OK" = "OK";
|
|
|
|
|
+"Cancel" = "Peruuta";
|
|
|
|
|
+"Continue" = "Jatka";
|
|
|
|
|
+"Apply" = "Käytä";
|
|
|
|
|
+"Reset" = "Palauta";
|
|
|
|
|
+"Save" = "Tallenna";
|
|
|
|
|
+"Copy" = "Kopioi";
|
|
|
|
|
+"Copied" = "Kopioitu";
|
|
|
|
|
+"Close" = "Sulje";
|
|
|
|
|
+"Join" = "Liity";
|
|
|
|
|
+"None" = "Ei mitään";
|
|
|
|
|
+"Link" = "Linkki";
|
|
|
|
|
+"Stop" = "Pysäytä";
|
|
|
|
|
+"Address" = "Osoite";
|
|
|
|
|
+"Title" = "Otsikko";
|
|
|
|
|
+"Notes" = "Muistiinpanot";
|
|
|
|
|
+"Start" = "Aloita";
|
|
|
|
|
+"Premium" = "Premium";
|
|
|
|
|
+"Popular" = "Suosittu";
|
|
|
|
|
+"Browser" = "Selain";
|
|
|
|
|
+"Meeting" = "Kokous";
|
|
|
|
|
+"Error" = "Virhe";
|
|
|
|
|
+"Success" = "Onnistui";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Tilarivi */
|
|
|
|
|
+"Meetings status menu" = "Kokousten tilavalikko";
|
|
|
|
|
+"Open App" = "Avaa sovellus";
|
|
|
|
|
+"Join Meetings" = "Liity kokouksiin";
|
|
|
|
|
+"Schedule" = "Aikatauluta";
|
|
|
|
|
+"Calendar" = "Kalenteri";
|
|
|
|
|
+"Widgets" = "Widgetit";
|
|
|
|
|
+"AI Companion" = "Tekoälyavustaja";
|
|
|
|
|
+"Settings" = "Asetukset";
|
|
|
|
|
+"Top meetings" = "Kiinnitetyt kokoukset";
|
|
|
|
|
+"No upcoming meetings" = "Ei tulevia kokouksia";
|
|
|
|
|
+"Sign Out" = "Kirjaudu ulos";
|
|
|
|
|
+"Sign In" = "Kirjaudu sisään";
|
|
|
|
|
+"Quit" = "Lopeta";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Aloitusnäyttö */
|
|
|
|
|
+"Preparing your meetings workspace" = "Valmistellaan kokoustyötilaasi";
|
|
|
|
|
+"CONNECTING SERVICES" = "YHDISTETÄÄN PALVELUITA";
|
|
|
|
|
+"READY" = "VALMIS";
|
|
|
|
|
+"Plan smart, achieve more" = "Suunnittele fiksusti, saavuta enemmän";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Widgetit */
|
|
|
|
|
+"Add Widget to Desktop" = "Lisää widget työpöydälle";
|
|
|
|
|
+"Choose a size and add your Google Meet widget." = "Valitse koko ja lisää Googlen Meet -widgettisi.";
|
|
|
|
|
+"Tip: Right-click a desktop widget to remove it." = "Vinkki: Napsauta työpöytäwidgetiä hiiren kakkospainikkeella poistaaksesi sen.";
|
|
|
|
|
+"Removed %@ widget from desktop." = "Widget %@ poistettu työpöydältä.";
|
|
|
|
|
+"Added %@ widget from desktop." = "Widget %@ lisätty työpöydältä.";
|
|
|
|
|
+"Added %@ widget to desktop." = "Widget %@ lisätty työpöydälle.";
|
|
|
|
|
+"Widgets are Premium only. Upgrade to add widgets." = "Widgetit ovat vain Premium-jäsenille. Päivitä lisätäksesi widgettejä.";
|
|
|
|
|
+"Remove Widget" = "Poista widget";
|
|
|
|
|
+"Small" = "Pieni";
|
|
|
|
|
+"Medium" = "Keskikokoinen";
|
|
|
|
|
+"Quick actions" = "Pikatoiminnot";
|
|
|
|
|
+"Open Meet" = "Avaa Googlen Meet";
|
|
|
|
|
+"Upcoming meetings" = "Tulevat kokoukset";
|
|
|
|
|
+"Sign in to see upcoming meetings" = "Kirjaudu sisään nähdäksesi tulevat kokoukset";
|
|
|
|
|
+"Sign in with Google" = "Kirjaudu sisään Googlella";
|
|
|
|
|
+"Google Meet" = "Googlen Meet";
|
|
|
|
|
+"Open and join quickly" = "Avaa ja liity nopeasti";
|
|
|
|
|
+"Refresh" = "Päivitä";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Sivupalkki ja navigointi */
|
|
|
|
|
+"Planning" = "Suunnittelu";
|
|
|
|
|
+"Additional" = "Lisäasetukset";
|
|
|
|
|
+"Get Premium" = "Hanki Premium";
|
|
|
|
|
+"Manage Subscription" = "Hallinnoi tilausta";
|
|
|
|
|
+"App for Google Meet" = "Sovellus Googlen Meetiin";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Kokoukseen liittyminen */
|
|
|
|
|
+"New Instant Meet" = "Uusi pikakokous";
|
|
|
|
|
+"Start instant Meet in more section with\nGoogle Meet meet." = "Aloita Googlen Meet -pikakokous Lisää-osiossa\nGooglen Meetillä.";
|
|
|
|
|
+"Join with Link" = "Liity linkillä";
|
|
|
|
|
+"Code or meet.google.com/…" = "Koodi tai meet.google.com/…";
|
|
|
|
|
+"Join with ID" = "Liity tunnuksella";
|
|
|
|
|
+"Join with URL" = "Liity URL-osoitteella";
|
|
|
|
|
+"Meeting URL" = "Kokouksen URL-osoite";
|
|
|
|
|
+"Enter meeting URL..." = "Syötä kokouksen URL-osoite...";
|
|
|
|
|
+"Quick Join Meeting" = "Pikaliity kokoukseen";
|
|
|
|
|
+"Invalid Meet link" = "Virheellinen Googlen Meet -linkki";
|
|
|
|
|
+"Enter a valid Google Meet link or meeting code (for example nkd-grps-duv, meet.google.com/nkd-grps-duv, or https://meet.google.com/nkd-grps-duv)." = "Syötä kelvollinen Googlen Meet -linkki tai kokouskoodi (esimerkiksi nkd-grps-duv, meet.google.com/nkd-grps-duv tai https://meet.google.com/nkd-grps-duv).";
|
|
|
|
|
+"Instant Meeting" = "Pikakokous";
|
|
|
|
|
+"Connect Google to start Instant Meeting" = "Yhdistä Google aloittaaksesi pikakokouksen";
|
|
|
|
|
+"To auto-stop recording when the meeting ends, connect your Google account first." = "Yhdistä Google-tilisi ensin, jotta tallennus pysähtyy automaattisesti kokouksen päättyessä.";
|
|
|
|
|
+"Could not create Instant Meeting" = "Pikakokousta ei voitu luoda";
|
|
|
|
|
+"Free trial used. Upgrade to continue." = "Ilmainen kokeilu käytetty. Päivitä jatkaaksesi.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Verkon selaaminen */
|
|
|
|
|
+"Browse the web" = "Selaa verkkoa";
|
|
|
|
|
+"Enter a web address (for example meet.google.com)." = "Syötä verkko-osoite (esimerkiksi meet.google.com).";
|
|
|
|
|
+"Invalid address" = "Virheellinen osoite";
|
|
|
|
|
+"Enter a valid http or https URL." = "Syötä kelvollinen http- tai https-URL-osoite.";
|
|
|
|
|
+"Browse" = "Selaa";
|
|
|
|
|
+"Quick links" = "Pikalinkit";
|
|
|
|
|
+"Zoom help" = "Zoom-ohje";
|
|
|
|
|
+"https://example.com or example.com" = "https://example.com tai example.com";
|
|
|
|
|
+"Enter a valid web address, for example https://example.com" = "Syötä kelvollinen verkko-osoite, esimerkiksi https://example.com";
|
|
|
|
|
+"Address not allowed" = "Osoite ei ole sallittu";
|
|
|
|
|
+"This URL is not permitted with the current in-app browser policy (whitelist)." = "Tämä URL-osoite ei ole sallittu nykyisellä sovelluksen sisäisen selaimen käytännöllä (sallittujen lista).";
|
|
|
|
|
+"Unable to load page" = "Sivua ei voi ladata";
|
|
|
|
|
+"Could not load this page in the in-app browser.\n\n%@" = "Tätä sivua ei voitu ladata sovelluksen sisäisessä selaimessa.\n\n%@";
|
|
|
|
|
+"Page stopped loading" = "Sivun lataus pysähtyi";
|
|
|
|
|
+"Unable to open browser" = "Selainta ei voi avata";
|
|
|
|
|
+"Unable to Open Safari" = "Safaria ei voi avata";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Aikataulutus ja kalenteri */
|
|
|
|
|
+"All" = "Kaikki";
|
|
|
|
|
+"Today" = "Tänään";
|
|
|
|
|
+"This week" = "Tällä viikolla";
|
|
|
|
|
+"This month" = "Tässä kuussa";
|
|
|
|
|
+"Previous week" = "Edellinen viikko";
|
|
|
|
|
+"Previous month" = "Edellinen kuukausi";
|
|
|
|
|
+"Custom range" = "Mukautettu aikaväli";
|
|
|
|
|
+"No meetings match the selected filters." = "Mikään kokous ei vastaa valittuja suodattimia.";
|
|
|
|
|
+"Adjust the date range and tap Apply." = "Säädä päivämääräväliä ja napauta Käytä.";
|
|
|
|
|
+"Premium required. Get Premium now to unlock Calendar." = "Premium vaaditaan. Hanki Premium nyt avataksesi Kalenterin.";
|
|
|
|
|
+"Premium required. Click to open paywall." = "Premium vaaditaan. Napsauta avataksesi maksumuurin.";
|
|
|
|
|
+"Get Premium to see events" = "Hanki Premium nähdäksesi tapahtumat";
|
|
|
|
|
+"Connect Google" = "Yhdistä Google";
|
|
|
|
|
+"Sign in with Google first to schedule a meeting from Calendar." = "Kirjaudu ensin sisään Googlella aikatauluttaaksesi kokouksen Kalenterista.";
|
|
|
|
|
+"Select date" = "Valitse päivämäärä";
|
|
|
|
|
+"Choose a date to schedule your meeting." = "Valitse päivämäärä kokouksesi aikatauluttamiseksi.";
|
|
|
|
|
+"Google schedule" = "Google-kalenteri";
|
|
|
|
|
+"To show scheduled meetings, connect your Google account. You’ll need a Google OAuth client ID (Desktop) and a redirect URI matching the app’s callback scheme." = "Näyttääksesi aikataulutetut kokoukset, yhdistä Google-tilisi. Tarvitset Google OAuth -asiakastunnuksen (Desktop) ja uudelleenohjaus-URI:n, joka vastaa sovelluksen takaisinkutsukaaviota.";
|
|
|
|
|
+"Actions" = "Toiminnot";
|
|
|
|
|
+"Schedule meeting" = "Aikatauluta kokous";
|
|
|
|
|
+"Team sync" = "Tiimin synkronointi";
|
|
|
|
|
+"Duration (min)" = "Kesto (min)";
|
|
|
|
|
+"Refresh saved meetings" = "Päivitä tallennetut kokoukset";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Asetukset */
|
|
|
|
|
+"Manage appearance, account, and app options." = "Hallinnoi ulkoasua, tiliä ja sovellusasetuksia.";
|
|
|
|
|
+"Appearance" = "Ulkoasu";
|
|
|
|
|
+"Account" = "Tili";
|
|
|
|
|
+"App" = "Sovellus";
|
|
|
|
|
+"Notifications" = "Ilmoitukset";
|
|
|
|
|
+"Help & Legal" = "Ohjeet ja juridiset tiedot";
|
|
|
|
|
+"Dark Mode" = "Tumma tila";
|
|
|
|
|
+"Language" = "Kieli";
|
|
|
|
|
+"System Language" = "Järjestelmän kieli";
|
|
|
|
|
+"Rate Us" = "Arvostele meidät";
|
|
|
|
|
+"Share App" = "Jaa sovellus";
|
|
|
|
|
+"Upgrade" = "Päivitä";
|
|
|
|
|
+"Privacy Policy" = "Tietosuojakäytäntö";
|
|
|
|
|
+"Support" = "Tuki";
|
|
|
|
|
+"Terms of Services" = "Käyttöehdot";
|
|
|
|
|
+"AI Language 1" = "Tekoälyn kieli 1";
|
|
|
|
|
+"AI Language 2" = "Tekoälyn kieli 2";
|
|
|
|
|
+"Google account connected" = "Google-tili yhdistetty";
|
|
|
|
|
+"Google account not connected" = "Google-tiliä ei ole yhdistetty";
|
|
|
|
|
+"Signed in" = "Kirjautunut sisään";
|
|
|
|
|
+"Sign in to sync your meetings and calendar." = "Kirjaudu sisään synkronoidaksesi kokouksesi ja kalenterisi.";
|
|
|
|
|
+"Log out" = "Kirjaudu ulos";
|
|
|
|
|
+"Check out %@ for managing and joining meetings." = "Tutustu sovellukseen %@ kokousten hallintaan ja niihin liittymiseen.";
|
|
|
|
|
+"Meetings App" = "Kokous-sovellus";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Tallennussuostumus */
|
|
|
|
|
+"Record this meeting locally?" = "Tallennetaanko tämä kokous paikallisesti?";
|
|
|
|
|
+"With your consent, the app will record meeting audio on this Mac and show it in AI Companion after the meeting." = "Suostumuksellasi sovellus tallentaa kokouksen äänen tälle Macille ja näyttää sen tekoälyavustajassa kokouksen jälkeen.";
|
|
|
|
|
+"Allow and Continue" = "Salli ja jatka";
|
|
|
|
|
+"Continue Without Recording" = "Jatka ilman tallennusta";
|
|
|
|
|
+"Transcription Languages" = "Litterointikielet";
|
|
|
|
|
+"Preferred Language 1" = "Ensisijainen kieli 1";
|
|
|
|
|
+"Preferred Language 2" = "Ensisijainen kieli 2";
|
|
|
|
|
+"Microphone permission denied" = "Mikrofonin käyttöoikeus evätty";
|
|
|
|
|
+"Microphone permission required" = "Mikrofonin käyttöoikeus vaaditaan";
|
|
|
|
|
+"Enable microphone access in System Settings to record meetings locally." = "Salli mikrofonin käyttö Järjestelmäasetuksissa tallentaaksesi kokouksia paikallisesti.";
|
|
|
|
|
+"Could not start recording" = "Tallennusta ei voitu aloittaa";
|
|
|
|
|
+"Recording will start when the meeting starts" = "Tallennus alkaa, kun kokous alkaa";
|
|
|
|
|
+"Meeting recording started (meeting + microphone)" = "Kokouksen tallennus aloitettu (kokous + mikrofoni)";
|
|
|
|
|
+"System audio unavailable. Recording microphone only." = "Järjestelmän ääni ei ole käytettävissä. Tallennetaan vain mikrofoni.";
|
|
|
|
|
+"Meeting recording started (microphone only)" = "Kokouksen tallennus aloitettu (vain mikrofoni)";
|
|
|
|
|
+"Meeting recording saved" = "Kokouksen tallennus tallennettu";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Tekoälyavustaja */
|
|
|
|
|
+"Get notes from your previous meetings" = "Hae muistiinpanot aiemmista kokouksistasi";
|
|
|
|
|
+"Connect your Google account to see your AI Companion meeting history." = "Yhdistä Google-tilisi nähdäksesi tekoälyavustajan kokoushistoriasi.";
|
|
|
|
|
+"No previous meetings yet for %@. End a meeting to save it here and generate notes." = "Ei vielä aiempia kokouksia tilille %@. Päätä kokous tallentaaksesi sen tänne ja luodaksesi muistiinpanot.";
|
|
|
|
|
+"this account" = "tämä tili";
|
|
|
|
|
+"Previous meetings" = "Aiemmat kokoukset";
|
|
|
|
|
+"Recording in progress: %@" = "Tallennus käynnissä: %@";
|
|
|
|
|
+"Started: %@" = "Aloitettu: %@";
|
|
|
|
|
+"Stop Recording" = "Pysäytä tallennus";
|
|
|
|
|
+"Date: %@" = "Päivämäärä: %@";
|
|
|
|
|
+"Saved time: %@" = "Tallennettu aika: %@";
|
|
|
|
|
+"Get Notes" = "Hae muistiinpanot";
|
|
|
|
|
+"Premium required. Click to unlock AI Companion notes." = "Premium vaaditaan. Napsauta avataksesi tekoälyavustajan muistiinpanot.";
|
|
|
|
|
+"Play Audio" = "Toista ääni";
|
|
|
|
|
+"Pause Audio" = "Keskeytä ääni";
|
|
|
|
|
+"Stopped" = "Pysäytetty";
|
|
|
|
|
+"Speaking..." = "Puhutaan...";
|
|
|
|
|
+"Paused" = "Keskeytetty";
|
|
|
|
|
+"Playing..." = "Toistetaan...";
|
|
|
|
|
+"Not playing" = "Ei toisteta";
|
|
|
|
|
+"Checking audio..." = "Tarkistetaan ääntä...";
|
|
|
|
|
+"Audio file missing" = "Äänitiedosto puuttuu";
|
|
|
|
|
+"Could not play recording" = "Tallennusta ei voitu toistaa";
|
|
|
|
|
+"Failed: %@" = "Epäonnistui: %@";
|
|
|
|
|
+"Failed to play audio" = "Äänen toistaminen epäonnistui";
|
|
|
|
|
+"decode error" = "purkivirhe";
|
|
|
|
|
+"Loading..." = "Ladataan...";
|
|
|
|
|
+"Buffering..." = "Puskuroidaan...";
|
|
|
|
|
+"Finished" = "Valmis";
|
|
|
|
|
+"Transcript not requested" = "Litterointia ei pyydetty";
|
|
|
|
|
+"Transcript processing..." = "Litterointia käsitellään...";
|
|
|
|
|
+"Transcript ready" = "Litterointi valmis";
|
|
|
|
|
+"Transcript unavailable (tap to retry)" = "Litterointi ei saatavilla (napauta yrittääksesi uudelleen)";
|
|
|
|
|
+"Notes not requested" = "Muistiinpanoja ei pyydetty";
|
|
|
|
|
+"Preparing notes, please wait..." = "Valmistellaan muistiinpanoja, odota...";
|
|
|
|
|
+"Notes ready" = "Muistiinpanot valmiit";
|
|
|
|
|
+"Notes unavailable (tap to retry)" = "Muistiinpanot eivät saatavilla (napauta yrittääksesi uudelleen)";
|
|
|
|
|
+"Transcript unavailable" = "Litterointi ei saatavilla";
|
|
|
|
|
+"Notes unavailable" = "Muistiinpanot eivät saatavilla";
|
|
|
|
|
+"Could not find recording details for this meeting." = "Tämän kokouksen tallennustietoja ei löytynyt.";
|
|
|
|
|
+"Transcript - %@" = "Litterointi - %@";
|
|
|
|
|
+"Notes - %@" = "Muistiinpanot - %@";
|
|
|
|
|
+"Meeting Notes" = "Kokousmuistiinpanot";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Maksumuuri ja StoreKit */
|
|
|
|
|
+"Meetings Pro" = "Kokoukset Pro";
|
|
|
|
|
+"PREMIUM EXPERIENCE" = "PREMIUM-KOKEMUS";
|
|
|
|
|
+"Elevate your meetings workflow" = "Nosta kokoustyönkulkusi tasoa";
|
|
|
|
|
+"Unlock automation, premium meeting tools, and priority support for every session." = "Avaa automaatio, premium-kokoustyökalut ja ensisijainen tuki jokaiselle istunnolle.";
|
|
|
|
|
+"Manage meetings" = "Hallinnoi kokouksia";
|
|
|
|
|
+"Smart scheduling" = "Älykäs aikataulutus";
|
|
|
|
|
+"Faster workflow" = "Nopeampi työnkulku";
|
|
|
|
|
+"Reminder notifications" = "Muistutusilmoitukset";
|
|
|
|
|
+"Monthly" = "Kuukausittain";
|
|
|
|
|
+"Bi Yearly" = "Puolivuosittain";
|
|
|
|
|
+"Yearly" = "Vuosittain";
|
|
|
|
|
+"Most Popular" = "Suosituin";
|
|
|
|
|
+"%@ • Most Popular" = "%@ • Suosituin";
|
|
|
|
|
+"3 days free trial" = "3 päivän ilmainen kokeilu";
|
|
|
|
|
+"Cancel anytime" = "Peruuta milloin tahansa";
|
|
|
|
|
+"No lock-in" = "Ei sitoutumista";
|
|
|
|
|
+"Instant access" = "Välitön pääsy";
|
|
|
|
|
+"Unlock all tools" = "Avaa kaikki työkalut";
|
|
|
|
|
+"Secure billing" = "Turvallinen laskutus";
|
|
|
|
|
+"Handled by Apple" = "Applen käsittelemä";
|
|
|
|
|
+"Secured by Apple. Cancel anytime." = "Applen turvaama. Peruuta milloin tahansa.";
|
|
|
|
|
+"Restore Purchase" = "Palauta ostos";
|
|
|
|
|
+"Continue with free plan" = "Jatka ilmaisella paketilla";
|
|
|
|
|
+"Already Premium" = "Jo Premium";
|
|
|
|
|
+"You are already premium. Do you want to continue with this purchase?" = "Olet jo Premium. Haluatko jatkaa tätä ostosta?";
|
|
|
|
|
+"Current plan: %@. Choose a different package to switch." = "Nykyinen paketti: %@. Valitse toinen paketti vaihtaaksesi.";
|
|
|
|
|
+"Premium is active on this Apple ID." = "Premium on aktiivinen tällä Apple ID:llä.";
|
|
|
|
|
+"Free for %@, then %@" = "Ilmainen %@ ajan, sitten %@";
|
|
|
|
|
+"Billed via App Store" = "Laskutetaan App Storen kautta";
|
|
|
|
|
+"%@ • %@" = "%@ • %@";
|
|
|
|
|
+"Save 0%" = "Säästä 0%";
|
|
|
|
|
+"Save %@%%" = "Säästä %@%%";
|
|
|
|
|
+"month" = "kuukausi";
|
|
|
|
|
+"year" = "vuosi";
|
|
|
|
|
+"%@ free trial" = "%@ ilmainen kokeilu";
|
|
|
|
|
+"Processing..." = "Käsitellään...";
|
|
|
|
|
+"Premium Active" = "Premium aktiivinen";
|
|
|
|
|
+"Continue with 3 day trail" = "Jatka 3 päivän kokeilulla";
|
|
|
|
|
+"Please Wait" = "Odota";
|
|
|
|
|
+"A purchase is already being processed." = "Ostosta käsitellään jo.";
|
|
|
|
|
+"This Apple ID already has premium access." = "Tällä Apple ID:llä on jo Premium-käyttöoikeus.";
|
|
|
|
|
+"Purchase Complete" = "Ostos valmis";
|
|
|
|
|
+"Premium has been unlocked successfully." = "Premium on avattu onnistuneesti.";
|
|
|
|
|
+"Purchase Pending" = "Ostos odottaa";
|
|
|
|
|
+"Your purchase is pending approval. You can continue once it completes." = "Ostoksensi odottaa hyväksyntää. Voit jatkaa, kun se on valmis.";
|
|
|
|
|
+"Product Not Available" = "Tuote ei saatavilla";
|
|
|
|
|
+"Unable to load this product. Check your StoreKit configuration and product IDs." = "Tätä tuotetta ei voi ladata. Tarkista StoreKit-määrityksesi ja tuotetunnukset.";
|
|
|
|
|
+"Already Purchased" = "Jo ostettu";
|
|
|
|
|
+"This plan is already active on your Apple ID." = "Tämä paketti on jo aktiivinen Apple ID:lläsi.";
|
|
|
|
|
+"Purchase Failed" = "Ostos epäonnistui";
|
|
|
|
|
+"Restore Purchases" = "Palauta ostokset";
|
|
|
|
|
+"Purchases restored successfully." = "Ostokset palautettu onnistuneesti.";
|
|
|
|
|
+"No previous premium purchase was found for this Apple ID." = "Tälle Apple ID:lle ei löytynyt aikaisempaa Premium-ostosta.";
|
|
|
|
|
+"Restore failed: %@" = "Palautus epäonnistui: %@";
|
|
|
|
|
+"Unable to Open Subscriptions" = "Tilauksia ei voi avata";
|
|
|
|
|
+"The subscriptions URL is invalid." = "Tilaus-URL on virheellinen.";
|
|
|
|
|
+"%@ tapped." = "%@ napautettu.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Todennus */
|
|
|
|
|
+"Google Sign-In" = "Google-kirjautuminen";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Puheentunnistus/litterointivirheet */
|
|
|
|
|
+"Speech recognition permission denied. Enable it in System Settings and try again." = "Puheentunnistuksen käyttöoikeus evätty. Salli se Järjestelmäasetuksissa ja yritä uudelleen.";
|
|
|
|
|
+"Speech recognition is restricted on this Mac." = "Puheentunnistus on rajoitettu tällä Macilla.";
|
|
|
|
|
+"Speech recognition authorization is unavailable." = "Puheentunnistuksen valtuutus ei ole saatavilla.";
|
|
|
|
|
+"Speech recognizer is unavailable for the current locale." = "Puheentunnistin ei ole saatavilla nykyiselle alueasetukselle.";
|
|
|
|
|
+"Speech recognizer is unavailable for %@." = "Puheentunnistin ei ole saatavilla kielelle %@.";
|
|
|
|
|
+"No audio was available to transcribe." = "Ääntä ei ollut saatavilla litterointia varten.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - StoreKit-tapahtumavirheet */
|
|
|
|
|
+"Unable to load products: %@" = "Tuotteita ei voi ladata: %@";
|
|
|
|
|
+"Product ID not found in StoreKit response. Requested: %@. Loaded IDs: %@" = "Tuotetunnusta ei löytynyt StoreKit-vastauksesta. Pyydetty: %@. Ladatut tunnukset: %@";
|
|
|
|
|
+"Purchase verification failed." = "Ostoksen vahvistus epäonnistui.";
|
|
|
|
|
+"Unknown purchase state." = "Tuntematon ostoksen tila.";
|
|
|
|
|
+"none" = "ei mitään";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Maksumuurin hintatekstit */
|
|
|
|
|
+"%@ one-time purchase" = "%@ kertamaksu";
|
|
|
|
|
+"%@/month" = "%@/kuukausi";
|
|
|
|
|
+"%@/6 months" = "%@/6 kuukautta";
|
|
|
|
|
+"%@/year (3 days free trial)" = "%@/vuosi (3 päivän ilmainen kokeilu)";
|
|
|
|
|
+"day" = "päivä";
|
|
|
|
|
+"week" = "viikko";
|
|
|
|
|
+"period" = "jakso";
|
|
|
|
|
+"1 %@" = "1 %@";
|
|
|
|
|
+"%d %@s" = "%d %@";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Ilmoitukset ja pikapalaute */
|
|
|
|
|
+"Meeting added successfully." = "Kokous lisätty onnistuneesti.";
|
|
|
|
|
+"An issue occurred. Please try again." = "Tapahtui ongelma. Yritä uudelleen.";
|
|
|
|
|
+"Failed to load transcript." = "Litteroinnin lataaminen epäonnistui.";
|
|
|
|
|
+"Failed to generate notes." = "Muistiinpanojen luominen epäonnistui.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Selainvaroitukset */
|
|
|
|
|
+"Try Again" = "Yritä uudelleen";
|
|
|
|
|
+"The in-app browser closed this page unexpectedly. You can try loading it again in this same window." = "Sovelluksen sisäinen selain sulki tämän sivun odottamatta. Voit yrittää ladata sen uudelleen tässä samassa ikkunassa.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Aikataulutus- ja kalenterivirheet */
|
|
|
|
|
+"Couldn't load schedule." = "Aikataulua ei voitu ladata.";
|
|
|
|
|
+"Couldn't refresh schedule." = "Aikataulua ei voitu päivittää.";
|
|
|
|
|
+"Couldn't connect Google account." = "Google-tiliä ei voitu yhdistää.";
|
|
|
|
|
+"Couldn't logout Google account." = "Google-tililtä ei voitu kirjautua ulos.";
|
|
|
|
|
+"Couldn't load schedule" = "Aikataulua ei voitu ladata";
|
|
|
|
|
+"Couldn't determine Meet meeting code from URL." = "Googlen Meet -kokouskoodia ei voitu määrittää URL-osoitteesta.";
|
|
|
|
|
+"Refreshing…" = "Päivitetään…";
|
|
|
|
|
+"Connect Google to see meetings" = "Yhdistä Google nähdäksesi kokoukset";
|
|
|
|
|
+"Connect to load schedule" = "Yhdistä ladataksesi aikataulu";
|
|
|
|
|
+"Loading…" = "Ladataan…";
|
|
|
|
|
+"Loading schedule…" = "Ladataan aikataulua…";
|
|
|
|
|
+"Start date must be on or before end date." = "Aloituspäivän on oltava ennen päättymispäivää tai sama.";
|
|
|
|
|
+"Invalid custom date range" = "Virheellinen mukautettu päivämääräväli";
|
|
|
|
|
+"No meetings" = "Ei kokouksia";
|
|
|
|
|
+"No meetings for selected filters" = "Ei kokouksia valituilla suodattimilla";
|
|
|
|
|
+"No meetings on %@" = "Ei kokouksia %@";
|
|
|
|
|
+"1 meeting on %@" = "1 kokous %@";
|
|
|
|
|
+"%d meetings on %@" = "%d kokousta %@";
|
|
|
|
|
+"All day" = "Koko päivä";
|
|
|
|
|
+"Duration: all day" = "Kesto: koko päivä";
|
|
|
|
|
+"Duration: %dh %dm" = "Kesto: %dt %dm";
|
|
|
|
|
+"Duration: %dh" = "Kesto: %dt";
|
|
|
|
|
+"Duration: %dm" = "Kesto: %dm";
|
|
|
|
|
+"%@ - %@" = "%@ - %@";
|
|
|
|
|
+"Scheduled Meeting" = "Aikataulutettu kokous";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Kokouksen luomisen ponnahdusikkuna */
|
|
|
|
|
+"Please enter a title." = "Anna otsikko.";
|
|
|
|
|
+"Duration must be a positive number of minutes." = "Keston on oltava positiivinen määrä minuutteja.";
|
|
|
|
|
+"Invalid start time." = "Virheellinen alkamisaika.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Muistutukset ja ilmoitukset */
|
|
|
|
|
+"Reminders" = "Muistutukset";
|
|
|
|
|
+"1 Day Before" = "1 päivä ennen";
|
|
|
|
|
+"12 Hours Before" = "12 tuntia ennen";
|
|
|
|
|
+"1 Hour Before" = "1 tunti ennen";
|
|
|
|
|
+"Starts in 1 day" = "Alkaa 1 päivän kuluttua";
|
|
|
|
|
+"Starts in 12 hours" = "Alkaa 12 tunnin kuluttua";
|
|
|
|
|
+"Starts in 1 hour" = "Alkaa 1 tunnin kuluttua";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Google OAuth -virheet */
|
|
|
|
|
+"Missing Google OAuth Client ID." = "Google OAuth -asiakastunnus puuttuu.";
|
|
|
|
|
+"Missing Google OAuth Client Secret." = "Google OAuth -asiakassalasana puuttuu.";
|
|
|
|
|
+"Invalid OAuth callback URL." = "Virheellinen OAuth-takaisinkutsu-URL.";
|
|
|
|
|
+"Google did not return an authorization code." = "Google ei palauttanut valtuutuskoodia.";
|
|
|
|
|
+"Token exchange failed: %@" = "Tunnuksen vaihto epäonnistui: %@";
|
|
|
|
|
+"Could not open browser for Google sign-in." = "Selainta ei voitu avata Google-kirjautumista varten.";
|
|
|
|
|
+"Google sign-in timed out." = "Google-kirjautuminen aikakatkaistiin.";
|
|
|
|
|
+"No stored Google tokens found." = "Tallennettuja Google-tunnuksia ei löytynyt.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Tekoälyavustaja/litterointivirheet */
|
|
|
|
|
+"Recording not found." = "Tallennetta ei löytynyt.";
|
|
|
|
|
+"Local meeting audio is missing." = "Paikallinen kokouksen ääni puuttuu.";
|
|
|
|
|
+"Generated transcript was empty." = "Luotu litterointi oli tyhjä.";
|
|
|
|
|
+"(No transcript entries found.)" = "(Litterointimerkintöjä ei löytynyt.)";
|
|
|
|
|
+"No conference record found for this meeting." = "Tälle kokoukselle ei löytynyt konferenssitietuetta.";
|
|
|
|
|
+"No transcript found for this meeting." = "Tälle kokoukselle ei löytynyt litterointia.";
|
|
|
|
|
+"Unable to create audio composition tracks." = "Äänen koosteraitoja ei voitu luoda.";
|
|
|
|
|
+"Unable to create audio export session." = "Äänen vienti-istuntoa ei voitu luoda.";
|
|
|
|
|
+"Audio mix export failed." = "Äänimiksauksen vienti epäonnistui.";
|
|
|
|
|
+"No display available for system audio capture." = "Näyttöä ei ole käytettävissä järjestelmän äänen kaappausta varten.";
|
|
|
|
|
+"Cannot add audio writer input." = "Äänenkirjoittajan syötettä ei voi lisätä.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Google API -virheet */
|
|
|
|
|
+"Google Meet returned an invalid response." = "Googlen Meet palautti virheellisen vastauksen.";
|
|
|
|
|
+"Google Meet API error (%d): %@" = "Googlen Meet API -virhe (%d): %@";
|
|
|
|
|
+"Failed to parse Google Meet response: %@" = "Googlen Meet -vastauksen jäsentäminen epäonnistui: %@";
|
|
|
|
|
+"Google Calendar returned an invalid response." = "Google Kalenteri palautti virheellisen vastauksen.";
|
|
|
|
|
+"Google Calendar API error (%d): %@" = "Google Kalenteri API -virhe (%d): %@";
|
|
|
|
|
+"Failed to parse Google Calendar events: %@" = "Google Kalenteri -tapahtumien jäsentäminen epäonnistui: %@";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - OpenAI-virheet */
|
|
|
|
|
+"OpenAI API key is missing. Set OPENAI_API_KEY in the environment or app key vault." = "OpenAI API -avain puuttuu. Aseta OPENAI_API_KEY ympäristössä tai sovelluksen avainsäilössä.";
|
|
|
|
|
+"Notes generation returned an invalid response." = "Muistiinpanojen luonti palautti virheellisen vastauksen.";
|
|
|
|
|
+"Notes generation failed (%d): %@" = "Muistiinpanojen luonti epäonnistui (%d): %@";
|
|
|
|
|
+"Notes generation returned empty text." = "Muistiinpanojen luonti palautti tyhjää tekstiä.";
|
|
|
|
|
+"OpenAI transcription returned an invalid response." = "OpenAI-litterointi palautti virheellisen vastauksen.";
|
|
|
|
|
+"OpenAI transcription failed (%d): %@" = "OpenAI-litterointi epäonnistui (%d): %@";
|
|
|
|
|
+"OpenAI transcription returned no text." = "OpenAI-litterointi ei palauttanut tekstiä.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Navigointi ja sovelluksen sisäinen selain */
|
|
|
|
|
+"Open sites in the in-app browser (back, forward, reload, address bar). OAuth and “Continue in browser” flows stay inside the app." = "Avaa sivustot sovelluksen sisäisessä selaimessa (takaisin, eteenpäin, päivitä, osoiterivi). OAuth- ja \"Jatka selaimessa\" -kulut pysyvät sovelluksen sisällä.";
|
|
|
|
|
+"Open in app browser" = "Avaa sovelluksen selaimessa";
|
|
|
|
|
+"Meet help" = "Googlen Meet -ohje";
|
|
|
|
|
+"Go" = "Siirry";
|
|
|
|
|
+"Back" = "Takaisin";
|
|
|
|
|
+"Forward" = "Eteenpäin";
|
|
|
|
|
+"Reload" = "Päivitä";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Kalenteri- ja aikataulutusmerkinnät */
|
|
|
|
|
+"Google Calendar" = "Google Kalenteri";
|
|
|
|
|
+"Untitled meeting" = "Nimetön kokous";
|
|
|
|
|
+"Created event missing start/end." = "Luodusta tapahtumasta puuttuu alku/loppu.";
|
|
|
|
|
+"Created event missing Meet/HTML link." = "Luodusta tapahtumasta puuttuu Googlen Meet/HTML-linkki.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Google-tili */
|
|
|
|
|
+"Google account" = "Google-tili";
|
|
|
|
|
+"%@, Google account" = "%@, Google-tili";
|
|
|
|
|
+"Google User" = "Google-käyttäjä";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Zoomiin liittyminen (käyttämättömät osat) */
|
|
|
|
|
+"Meeting ID" = "Kokoustunnus";
|
|
|
|
|
+"Enter meeting ID..." = "Syötä kokoustunnus...";
|
|
|
|
|
+"Meeting Passcode" = "Kokouksen salasana";
|
|
|
|
|
+"Enter meeting passcode..." = "Syötä kokouksen salasana...";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Maksumuuri (vaihtoehtoiset edut) */
|
|
|
|
|
+"Virtual backgrounds" = "Virtuaaliset taustat";
|
|
|
|
|
+"Tools for productivity" = "Tuottavuustyökalut";
|
|
|
|
|
+"24/7 support" = "24/7 tuki";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Litteroinnin puhujat */
|
|
|
|
|
+"You" = "Sinä";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Avainnippuvirheet */
|
|
|
|
|
+"Failed to read OAuth tokens from Keychain." = "OAuth-tunnusten lukeminen Avainnipusta epäonnistui.";
|
|
|
|
|
+"Keychain returned an invalid token payload." = "Avainnippu palautti virheellisen tunnuksen hyötykuorman.";
|
|
|
|
|
+"Failed to update OAuth tokens in Keychain." = "OAuth-tunnusten päivittäminen Avainnipussa epäonnistui.";
|
|
|
|
|
+"Failed to save OAuth tokens to Keychain." = "OAuth-tunnusten tallentaminen Avainnippuun epäonnistui.";
|
|
|
|
|
+"Failed to delete OAuth tokens from Keychain." = "OAuth-tunnusten poistaminen Avainnipusta epäonnistui.";
|
|
|
|
|
+"Unable to allocate audio buffer." = "Äänipuskuria ei voitu varata.";
|
|
|
|
|
+"Invalid revoke response." = "Virheellinen peruutusvastaus.";
|
|
|
|
|
+"Token revoke failed with status %d." = "Tunnuksen peruutus epäonnistui tilalla %d.";
|
|
|
|
|
+
|
|
|
|
|
+/* MARK: - Virhediagnostiikka */
|
|
|
|
|
+"Keychain: %d (%@)" = "Avainnippu: %d (%@)";
|
|
|
|
|
+"OSStatus: %d" = "OSStatus: %d";
|
|
|
|
|
+"Item: service=%@, account=%@" = "Kohde: palvelu=%@, tili=%@";
|