Ver código fonte

Add Finnish localization for the full app UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 1 mês atrás
pai
commit
737b16332b

+ 1 - 0
App for Indeed.xcodeproj/project.pbxproj

@@ -108,6 +108,7 @@
 				"fr-CA",
 				de,
 				nl,
+				fi,
 				sv,
 				ko,
 				"pt-BR",

+ 7 - 1
App for Indeed/Services/AppLocalization.swift

@@ -12,6 +12,7 @@ enum AppLanguage: CaseIterable {
     case english
     case german
     case dutch
+    case finnish
     case swedish
     case frenchCanada
     case french
@@ -33,6 +34,8 @@ enum AppLanguage: CaseIterable {
             return "de"
         case .dutch:
             return "nl"
+        case .finnish:
+            return "fi"
         case .swedish:
             return "sv"
         case .frenchCanada:
@@ -79,6 +82,9 @@ enum AppLanguage: CaseIterable {
         if lower.hasPrefix("nl") {
             return .dutch
         }
+        if lower.hasPrefix("fi") {
+            return .finnish
+        }
         if lower.hasPrefix("sv") {
             return .swedish
         }
@@ -207,7 +213,7 @@ private func translateTemplateNameByTokens(_ name: String, language: AppLanguage
     switch language {
     case .chineseSimplified, .chineseTraditional:
         return translated.joined()
-    case .arabic, .dutch, .english, .french, .frenchCanada, .german, .korean, .portugueseBrazil, .russian, .spanish, .spanishMexico, .swedish, .vietnamese:
+    case .arabic, .dutch, .english, .finnish, .french, .frenchCanada, .german, .korean, .portugueseBrazil, .russian, .spanish, .spanishMexico, .swedish, .vietnamese:
         return translated.joined(separator: " ")
     }
 }

+ 1 - 1
App for Indeed/Services/CVTemplateFetchService.swift

@@ -49,7 +49,7 @@ final class CVTemplateFetchService {
             switch language {
             case .english:
                 return spacingRule
-            case .chineseTraditional, .chineseSimplified, .arabic, .dutch, .french, .frenchCanada, .german, .korean, .portugueseBrazil, .russian, .spanish, .spanishMexico, .swedish, .vietnamese:
+            case .chineseTraditional, .chineseSimplified, .arabic, .dutch, .finnish, .french, .frenchCanada, .german, .korean, .portugueseBrazil, .russian, .spanish, .spanishMexico, .swedish, .vietnamese:
                 return spacingRule + " The app localizes these English keys client-side — do not use non-English script in `name`."
             }
         }

+ 1 - 1
App for Indeed/Services/TemplateNameTokenLexicon.swift

@@ -84,7 +84,7 @@ enum TemplateNameTokenLexicon {
             return fr
         case .swedish:
             return sv
-        case .dutch, .korean, .portugueseBrazil, .russian, .spanish, .spanishMexico, .vietnamese:
+        case .dutch, .finnish, .korean, .portugueseBrazil, .russian, .spanish, .spanishMexico, .vietnamese:
             return [:]
         }
     }

+ 372 - 0
App for Indeed/fi.lproj/Localizable.strings

@@ -0,0 +1,372 @@
+/* Localizable.strings (Finnish) */
+
+// MARK: - Yleiset
+"OK" = "OK";
+"Cancel" = "Peruuta";
+"Delete" = "Poista";
+"Remove" = "Poista";
+"Dismiss" = "Hylkää";
+
+// MARK: - Käynnistysnäyttö
+"AI-POWERED" = "TEKOÄLYLLÄ TOIMIVA";
+"Find your perfect job with the power of AI." = "Löydä täydellinen työpaikka tekoälyn voimalla.";
+"Starting up…" = "Käynnistetään…";
+"Loading progress" = "Ladataan edistymistä";
+
+// MARK: - Käynnistystila
+"Checking your Pro subscription…" = "Tarkistetaan ammattiversiotilaustasi…";
+"Loading premium plans from the App Store…" = "Ladataan eksklusiivisia sopimuksia App Storesta…";
+"Preparing your job search workspace…" = "Valmistellaan työnhakutyötilaa…";
+"Almost ready…" = "Melkein valmis…";
+
+// MARK: - Sivupalkki
+"Home" = "Koti";
+"Saved Jobs" = "Tallennetut työpaikat";
+"CV Maker" = "CV-tekijä";
+"Profile" = "Profiili";
+"Settings" = "Asetukset";
+"Premium" = "Eksklusiivinen";
+"Indeed" = "Indeed";
+"Open Indeed to search and apply for jobs" = "Avaa Indeed hakeaksesi työpaikkoja";
+
+// MARK: - Hallintapaneeli / Koti
+"Welcome" = "Tervetuloa";
+"Send" = "Lähetä";
+"Clear chat" = "Tyhjennä chat";
+"Remove all messages and start a new conversation" = "Poista kaikki viestit ja aloita uusi keskustelu";
+"Ask for roles, skills, salary, or job descriptions..." = "Kysy työtehtävistä, taidoista, palkasta tai työnkuvauksista...";
+"Ask AI" = "Kysy tekoälyltä";
+"1 reply left" = "1 vastaus jäljellä";
+"Apply" = "Hae";
+"Save" = "Tallenna";
+"Saved" = "Tallennettu";
+"Remove from saved" = "Poista tallennetuista";
+"Show more jobs" = "Näytä lisää työpaikkoja";
+"This area is not available in the preview build. Use Home to search jobs." = "Tämä alue ei ole käytettävissä esikatselurakennelmassa. Käytä Kotia hakeaksesi työpaikkoja.";
+"Save jobs from Home to see them here." = "Tallenna työpaikkoja Kotoa nähdäksesi ne täällä.";
+"No saved jobs yet. Search on Home, then tap Save on a listing." = "Ei vielä tallennettuja työpaikkoja. Etsi Kotoa ja napauta Tallenna ilmoituksessa.";
+"Tell me what role you want and I will return job descriptions, key skills, and a quick fit summary." = "Kerro minulle, mitä työtehtävää haluat, ja lähetän sinulle työnkuvaukset, keskeiset taidot ja nopean sopivuusyhteenvedon.";
+"1 saved position" = "1 tallennettu positio";
+"Delete this profile?" = "Poistetaanko tämä profiili?";
+"Find roles similar to: " = "Löydä samankaltaisia tehtäviä: ";
+"Find jobs at company: " = "Löydä työpaikkoja yrityksestä: ";
+"Find jobs that require skill: " = "Löydä työpaikkoja, jotka vaativat taitoa: ";
+"match" = "osuma";
+"matches" = "osumaa";
+
+// MARK: - Ominaisuuksien pikakuvakkeet
+"Role" = "Tehtävä";
+"Explore similar or better job roles" = "Tutustu samankaltaisiin tai parempiin työtehtäviin";
+"Company" = "Yritys";
+"Find opportunities at other companies" = "Löydä mahdollisuuksia muista yrityksistä";
+"Skill" = "Taito";
+"Match jobs that fit your skills" = "Yhdistä työpaikat taitojesi mukaan";
+
+// MARK: - Pro / Tilaus
+"Upgrade to Pro" = "Päivitä ammattiversioon";
+"You're on Pro" = "Käytät ammattiversiota";
+"Unlimited AI matches, smart alerts, and interview prep—all in one place." = "Rajaton määrä tekoälyosumoita, älykkäät hälytykset ja haastatteluvalmistelu – kaikki yhdessä paikassa.";
+"Manage billing, renewals, and plans in Premium." = "Hallitse laskutusta, uusimista ja sopimuksia Eksklusiivisessa.";
+"Try Pro" = "Kokeile ammattiversiota";
+"Manage Subscription" = "Hallitse tilausta";
+"Premium Plans" = "Eksklusiiviset sopimukset";
+"Unlock unlimited access to premium tools and boost your productivity." = "Avaa rajoittamaton pääsy eksklusiivisiin työkaluihin ja lisää tuottavuuttasi.";
+"Continue with free plan" = "Jatka ilmaisella sopimuksella";
+"Restore Purchase" = "Palauta ostos";
+"You're subscribed" = "Olet tilannut";
+"Thank you — Pro features are now available." = "Kiitos – ammattiversio-ominaisuudet ovat nyt käytettävissä.";
+"Pro" = "Ammattiversio";
+"Purchases restored" = "Ostot palautettu";
+"Your subscription is active." = "Tilauksesi on aktiivinen.";
+"No subscription found" = "Tilausta ei löytynyt";
+"There was nothing to restore for this Apple ID." = "Tälle Apple ID:lle ei ollut mitään palautettavaa.";
+"Something went wrong" = "Jokin meni pieleen";
+"That subscription isn’t available from the App Store right now." = "Tämä tilaus ei ole tällä hetkellä saatavilla App Storesta.";
+"Unlimited AI job search on Home" = "Rajoittamaton tekoälyllä tapahtuva työnhaku Kotoa";
+"Save jobs & open listings in-app" = "Tallenna työpaikat ja avaa ilmoitukset sovelluksessa";
+"CV Maker, profiles & PDF export" = "CV-tekijä, profiilit ja PDF-vienti";
+"Role, company & skill shortcuts" = "Pikakuvakkeet tehtävään, yritykseen ja taitoon";
+
+// MARK: - Maksuvalinnat
+"Weekly" = "Viikoittain";
+"Flexible and commitment-free" = "Joustava ja ilman sitoumusta";
+"Monthly" = "Kuukausittain";
+"Balanced for regular productivity" = "Tasapainoinen säännölliseen tuottavuuteen";
+"Yearly" = "Vuosittain";
+"Best value for long-term users" = "Paras hinta-laatusuhde pitkäaikaisille käyttäjille";
+"/ week" = "/ viikko";
+"/ month" = "/ kuukausi";
+"/ year" = "/ vuosi";
+"3 days free trial" = "3 päivän ilmainen kokeilujakso";
+"Perfect for short-term job hunts" = "Täydellinen lyhytaikaiseen työnhakuun";
+"Cancel anytime" = "Peruuta milloin tahansa";
+"Best for regular job seekers" = "Paras säännöllisille työnhakijoille";
+"Priority support" = "Priorisoitu tuki";
+"Lowest effective monthly cost" = "Alhaisimmat todelliset kuukausikustannukset";
+"Ideal for long-term use" = "Ihanteellinen pitkäaikaiseen käyttöön";
+
+// MARK: - Maksulukituksen luottamus
+"Secure Payments" = "Turvalliset maksut";
+"Your payment is 100% secure." = "Maksusi on 100% turvallinen.";
+"Cancel Anytime" = "Peruuta milloin tahansa";
+"No commitment, cancel anytime." = "Ei sitoumusta, peruuta milloin tahansa.";
+"24/7 Support" = "24/7 tuki";
+"We're here to help you anytime." = "Olemme täällä auttamassa sinua milloin tahansa.";
+"Privacy First" = "Yksityisyys ensin";
+"Your data is safe with us." = "Tietosi ovat turvassa luonamme.";
+
+// MARK: - Asetukset
+"Appearance" = "Ulkoasu";
+"Theme" = "Teema";
+"Language" = "Kieli";
+"Share App" = "Jaa sovellus";
+"More Apps" = "Lisää sovelluksia";
+"About" = "Tietoja";
+"Website" = "Verkkosivusto";
+"Support" = "Tuki";
+"Terms of Use" = "Käyttöehdot";
+"Privacy Policy" = "Tietosuojakäytäntö";
+"System" = "Järjestelmä";
+"Light" = "Vaalea";
+"Dark" = "Tumma";
+
+// MARK: - Profiilit
+"Profiles" = "Profiilit";
+"Add new profile" = "Lisää uusi profiili";
+"Create and manage CV profiles. Each profile stores your details on this Mac." = "Luo ja hallinnoi CV-profiileja. Jokainen profiili tallentaa tietosi tälle Macille.";
+"No profiles yet. Tap “Add new profile” to create your first one." = "Ei vielä profiileja. Napauta “Lisää uusi profiili” luodaksesi ensimmäisen.";
+"Build CV" = "Luo CV";
+"Edit" = "Muokkaa";
+"Untitled profile" = "Nimetön profiili";
+"No contact details yet" = "Ei vielä yhteystietoja";
+"← Profiles" = "← Profiilit";
+
+// MARK: - Profiilieditori
+"Save Profile  →" = "Tallenna profiili →";
+"← All profiles" = "← Kaikki profiilit";
+"New profile" = "Uusi profiili";
+"Edit profile" = "Muokkaa profiilia";
+"Profile Name *" = "Profiilin nimi *";
+"Marketing Director Profile" = "Markkinointijohtajan profiili";
+"Personal Information" = "Henkilötiedot";
+"Full Name *" = "Koko nimi *";
+"John Doe" = "Matti Meikäläinen";
+"Email *" = "Sähköposti *";
+"john@example.com" = "matti@esimerkki.fi";
+"Phone" = "Puhelin";
+"+1 (555) 123-4567" = "+358 40 123 4567";
+"Job Title *" = "Työnimike *";
+"Software Engineer" = "Ohjelmistosuunnittelija";
+"Address" = "Osoite";
+"123 Main St, City, State, ZIP" = "Mannerheimintie 123, 00100 Helsinki";
+"Certificates / Rewards" = "Sertifikaatit / Palkinnot";
+"List your certificates and awards..." = "Listaa sertifikaattisi ja palkintosi...";
+"Interests" = "Kiinnostuksen kohteet";
+"List your interests and hobbies..." = "Listaa kiinnostuksen kohteet ja harrastukset...";
+"Languages" = "Kielet";
+"List languages you speak (e.g., English - Native, Spanish - Fluent)..." = "Listaa puhumasi kielet (esim. suomi - äidinkieli, englanti - sujuva)...";
+"Career Summary" = "Uravaiheen yhteenveto";
+"Brief overview of your professional background and key achievements..." = "Lyhyt katsaus ammatilliseen taustaasi ja keskeisiin saavutuksiisi...";
+"Referral (Optional)" = "Suositus (Valinnainen)";
+"Referred by (Company/Person Name)" = "Suosittelija (Yrityksen/Henkilön nimi)";
+"If someone referred you for this job, enter their name or company here" = "Jos joku suositteli sinua tähän työpaikkaan, kirjoita hänen nimensä tai yrityksensä tähän";
+"Work Experience" = "Työkokemus";
+"Education" = "Koulutus";
+"+ Add Another" = "+ Lisää toinen";
+"Complete required fields" = "Täytä pakolliset kentät";
+"Remove experience" = "Poista kokemus";
+"Remove education" = "Poista koulutus";
+"Company Name *" = "Yrityksen nimi *";
+"Duration *" = "Kesto *";
+"Description" = "Kuvaus";
+"e.g., Software Engineer" = "esim. Ohjelmistosuunnittelija";
+"e.g., Google" = "esim. Google";
+"e.g., Jan 2020 - Present" = "esim. Tammi 2023 - Nykyhetki";
+"Describe your responsibilities and achievements..." = "Kuvaa vastuualueitasi ja saavutuksiasi...";
+"Degree / program *" = "Tutkinto / ohjelma *";
+"Institution *" = "Oppilaitos *";
+"Year *" = "Vuosi *";
+"e.g., BSc Computer Science" = "esim. Tietojenkäsittelytieteen kandidaatti";
+"e.g., MIT" = "esim. Aalto-yliopisto";
+"e.g., 2020" = "esim. 2023";
+"Profile name" = "Profiilin nimi";
+"Full Name" = "Koko nimi";
+"Email" = "Sähköposti";
+"Job Title" = "Työnimike";
+
+// MARK: - CV-tekijä
+"Templates" = "Mallit";
+"Polished layouts with live previews — pick a style that fits your story." = "Viimeistellyt asettelut live-esikatseluilla – valitse tyyli, joka sopii tarinaasi.";
+"Use Template & Select Profile  →" = "Käytä mallia ja valitse profiili →";
+"All" = "Kaikki";
+"No templates yet for this category." = "Ei vielä malleja tässä kategoriassa.";
+"Pick a template" = "Valitse malli";
+"Select a template first, then choose a profile to continue." = "Valitse ensin malli, sitten profiili jatkaaksesi.";
+"Fetching AI-curated templates…" = "Haetaan tekoälyn kuratoimia malleja…";
+"Couldn’t load AI templates — showing the built-in gallery." = "Tekoälymalleja ei voitu ladata – näytetään sisäänrakennettu galleria.";
+"Design-Based" = "Suunnittelupohjainen";
+"Profession-Based" = "Ammattipohjainen";
+"Professional" = "Ammattimainen";
+"Modern" = "Moderni";
+"Creative" = "Luova";
+"Minimal" = "Minimalistinen";
+"Executive" = "Johtaja";
+"ATS layout" = "ATS-asettelu";
+"Sidebar left" = "Sivupalkki vasemmalla";
+"Sidebar right" = "Sivupalkki oikealla";
+
+// MARK: - CV-esikatselu
+"CV preview" = "CV-esikatselu";
+"Export PDF…" = "Vie PDF…";
+"Layout matches the CV Maker thumbnail for this template. Export a PDF that matches what you see here (fonts, columns, colours, and rules)." = "Asettelu vastaa CV-tekijän pikkukuvaa tälle mallille. Vie PDF, joka vastaa sitä, mitä näet tässä (fontit, sarakkeet, värit ja viivat).";
+"The résumé could not be rendered to PDF (empty output). Try scrolling the preview so it lays out, then export again." = "Ansioluetteloa ei voitu muuntaa PDF-muotoon (tyhjä tulos). Yritä vierittää esikatselua, jotta se asettuu, ja vie sitten uudelleen.";
+"Couldn’t save PDF" = "PDF:n tallennus epäonnistui";
+"Your name" = "Nimesi";
+"Professional headline" = "Ammatillinen otsikko";
+"Experience" = "Kokemus";
+"Highlights" = "Kohokohdat";
+"Summary" = "Yhteenveto";
+"Contact" = "Yhteystiedot";
+"Skills" = "Taidot";
+"Tools" = "Työkalut";
+"Languages & more" = "Kielet ja muut";
+"Certificates" = "Sertifikaatit";
+"Referrals" = "Suositukset";
+"Professional Summary" = "Ammatillinen yhteenveto";
+"Selected Experience" = "Valittu kokemus";
+"Core Competencies" = "Keskeiset osaamisalueet";
+"Impact" = "Vaikutus";
+"Add contact in your profile" = "Lisää yhteystiedot profiiliisi";
+"Add contact details in your profile" = "Lisää yhteystiedot profiiliisi";
+"Add a career summary or interests in your profile to populate this column." = "Lisää uravaiheen yhteenveto tai kiinnostuksen kohteet profiiliisi täyttääksesi tämän sarakkeen.";
+"CV" = "CV";
+"Open to relocation" = "Valmis muuttamaan";
+"STRENGTHS" = "VAHVUUDET";
+"PORTFOLIO SNAPSHOT" = "SALKUN TILANNEKATSAUS";
+"Close" = "Sulje";
+"/ day" = "/ päivä";
+"/ %d days" = "/ %d päivää";
+"/ %d weeks" = "/ %d viikkoa";
+"/ %d months" = "/ %d kuukautta";
+"/ %d years" = "/ %d vuotta";
+
+// MARK: - CV-mallien nimet
+"Paper White" = "Paperivalkoinen";
+"Swiss" = "Sveitsiläinen";
+"Mono" = "Mono";
+"Airy" = "Ilava";
+"Tabular" = "Taulukkomuotoinen";
+"Facet" = "Taho";
+"Corporate" = "Yritysmäinen";
+"Atlas" = "Atlas";
+"Ledger" = "Pääkirja";
+"Harbor" = "Satama";
+"Clear Path" = "Selkeä polku";
+"Pinstripe" = "Hiusraita";
+"Briefing" = "Lyhytinfo";
+"Quorum" = "Päätösvaltaisuus";
+"Docket" = "Rooliluettelo";
+"Conduit" = "Johdin";
+"Principal" = "Pää";
+"Charter" = "Peruskirja";
+"Vertex" = "Huippu";
+"Linea" = "Viiva";
+"Prism" = "Prisma";
+"Circuit" = "Piiri";
+"North" = "Pohjoinen";
+"Axis" = "Akseli";
+"Marigold" = "Kehäkukka";
+"Ember" = "Hehku";
+"Lattice" = "Hila";
+"Bloom" = "Kukinta";
+"Studio" = "Studio";
+"Kite" = "Leija";
+"Regent" = "Valtionhoitaja";
+"Monarch" = "Monarkki";
+"Sterling" = "Sterling";
+"Summit" = "Huippukokous";
+"Estate" = "Kartano";
+"Chairman" = "Puheenjohtaja";
+"Blue Ocean" = "Sininen valtameri";
+
+// MARK: - CV-demon esikatselusisältö
+"Sarah Johnson" = "Anna Virtanen";
+"Senior Product Manager" = "Vanhempi tuotepäällikkö";
+"Group PM, Consumer Growth & Activation" = "Ryhmän tuotepäällikkö, kuluttajakasvu ja aktivointi";
+"Google · Mountain View, CA · 2019 – Present" = "Google · Helsinki · 2019 – Nykyhetki";
+"Stanford University" = "Helsingin yliopisto";
+"M.S. Management Science & Engineering" = "Kauppatieteiden maisteri, johtaminen ja tekniikka";
+"2014 – 2016" = "2014 – 2016";
+"Mountain View, CA" = "Helsinki";
+"Product leader shipping roadmap, discovery, and analytics for high-scale consumer experiences." = "Tuotejohtaja, joka toimittaa tiekarttaa, löydöksiä ja analytiikkaa laajamittaisiin kuluttajakokemuksiin.";
+"Defined multi-year platform strategy with exec stakeholders and quarterly OKRs." = "Määritteli monivuotisen alustastrategian ylimmän johdon sidosryhmien ja neljännesvuosittaisten OKR:ien kanssa.";
+"Partnered with engineering and design to launch experiments improving activation by 12%." = "Tehnyt yhteistyötä tekniikan ja suunnittelun kanssa käynnistääkseen kokeiluja, jotka paransivat aktivointia 12%.";
+"Stood up quarterly business reviews with finance and GTM, aligning spend to north-star metrics." = "Perusti neljännesvuosittaiset liiketoimintakatselmukset talousosaston ja GTM:n kanssa sovittaen menot pohjantähtimittareihin.";
+"Presented roadmap shifts to the leadership team and translated trade-offs into clear investment asks." = "Esitti tiekarttamuutokset johtoryhmälle ja muunsi kompromissit selkeiksi investointipyynnöiksi.";
+"Figma · SQL · Amplitude · Jira · BigQuery" = "Figma · SQL · Amplitude · Jira · BigQuery";
+"Product Strategy" = "Tuotestrategia";
+"A/B Testing" = "A/B-testaus";
+"Roadmapping" = "Tiekartan laatiminen";
+"CONTACT" = "YHTEYSTIEDOT";
+"SKILLS" = "TAIDOT";
+"PROFILE" = "PROFIILI";
+"EXPERIENCE" = "KOKEMUS";
+"EDUCATION" = "KOULUTUS";
+"SUMMARY" = "YHTEENVETO";
+"PROFESSIONAL SUMMARY" = "AMMATILLINEN YHTEENVETO";
+"SELECTED EXPERIENCE" = "VALITTU KOKEMUS";
+"CORE COMPETENCIES" = "KESKEISET OSAAMISALUEET";
+"TOOLS" = "TYÖKALUT";
+"IMPACT" = "VAIKUTUS";
+
+// MARK: - Työpaikkaselain
+"Go to Indeed home" = "Siirry Indeedin etusivulle";
+
+// MARK: - Virheet
+"We couldn't reach the server. Check your internet connection and try again." = "Palvelimeen ei saatu yhteyttä. Tarkista internetyhteys ja yritä uudelleen.";
+"The search was cancelled. Try again when you're ready." = "Haku peruttiin. Yritä uudelleen, kun olet valmis.";
+"The request was cancelled. Try again when you're ready." = "Pyyntö peruttiin. Yritä uudelleen, kun olet valmis.";
+"Something went wrong while searching. Please try again in a moment." = "Haun aikana tapahtui virhe. Yritä uudelleen hetken kuluttua.";
+"Job search is unavailable." = "Työnhaku ei ole käytettävissä.";
+"We couldn't complete your purchase. Please try again." = "Ostoa ei voitu suorittaa loppuun. Yritä uudelleen.";
+"We couldn't restore your purchases. Please try again." = "Ostojasi ei voitu palauttaa. Yritä uudelleen.";
+"Purchase was cancelled." = "Osto peruttiin.";
+"This subscription isn't available in your App Store region." = "Tämä tilaus ei ole saatavilla App Store -alueellasi.";
+"Purchases aren't allowed on this account or device." = "Ostot eivät ole sallittuja tällä tilillä tai laitteella.";
+"This introductory offer isn't available for your account." = "Tämä aloitus-tarjous ei ole saatavilla tilillesi.";
+"The purchase couldn't be verified. Please try again." = "Ostoa ei voitu vahvistaa. Yritä uudelleen.";
+"We couldn't save the PDF. Try again or choose a different folder." = "PDF:n tallennus epäonnistui. Yritä uudelleen tai valitse toinen kansio.";
+"We don't have permission to save to that folder. Choose another location or grant access." = "Meillä ei ole lupaa tallentaa kyseiseen kansioon. Valitse toinen sijainti tai myönnä pääsy.";
+"This disk is read-only. Choose another folder to save your PDF." = "Tämä levy on kirjoitussuojattu. Valitse toinen kansio tallentaaksesi PDF:n.";
+"The disk is full. Free up space, then try again." = "Levy on täynnä. Vapauta tilaa ja yritä uudelleen.";
+
+// MARK: - Hälytykset
+"This profile will be removed from this Mac." = "Tämä profiili poistetaan tältä Macilta.";
+"Couldn't open Profile" = "Profiilia ei voitu avata";
+"The Profile section isn't available right now. Try restarting the app." = "Profiili-osa ei ole juuri nyt käytettävissä. Yritä käynnistää sovellus uudelleen.";
+"No template selected" = "Mallia ei ole valittu";
+"Choose a template in CV Maker, then tap Use Template & Select Profile before Build CV." = "Valitse malli CV-tekijässä, napauta sitten Käytä mallia ja valitse profiili ennen Luo CV -toimintoa.";
+
+// MARK: - CV-osion otsikot
+"About me" = "Tietoa minusta";
+
+// MARK: - Muotoilumerkkijonot
+"Loading %@" = "Ladataan %@";
+"Loading %@. %@" = "Ladataan %@. %@";
+"Starting %@…" = "Käynnistetään %@…";
+"%d replies left" = "%d vastausta jäljellä";
+"%d saved positions" = "%d tallennettua positiota";
+"“%@” will be removed from this Mac." = "“%@” poistetaan tältä Macilta.";
+"%@ isn’t available yet" = "%@ ei ole vielä käytettävissä";
+"I couldn't find new matches for “%@”. Try a different angle or a more specific keyword." = "En löytänyt uusia osumia haulle “%@”. Kokeile toisesta näkökulmasta tai tarkemmalla hakusanalla.";
+"No jobs found for “%@”. Try another title, skill, company, or location." = "Ei löytynyt työpaikkoja haulle “%@”. Kokeile toista nimikettä, taitoa, yritystä tai sijaintia.";
+"Here are %d more %@ for “%@”." = "Tässä on %d lisää %@ haulle “%@”.";
+"Found %d %@ for “%@”. Tap Apply to open the listing or Save to revisit later." = "Löytyi %d %@ haulle “%@”. Napauta Hae avataksesi ilmoituksen tai Tallenna palataksesi myöhemmin.";
+"Get %@" = "Hanki %@";
+"You chose the “%@” template. Tap Build CV on a profile to preview your résumé with that layout." = "Valitsit “%@”-mallin. Napauta Luo CV profiilissa esikatsellaksesi ansioluetteloasi tällä asettelulla.";
+"Experience %d" = "Kokemus %d";
+"Education %d" = "Koulutus %d";
+"Please fill in: %@." = "Täytä: %@.";
+
+// MARK: - Moniriviset
+"Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Lisää Mac App Store -tunnukset kohteen koontiasetuksiin:\n• AppStoreAppID — numeerinen sovellustunnus App Store Connectistä\n• AppStoreDeveloperID — numeerinen kehittäjätunnus (sivullesi muille sovelluksille)";