From 494d9d77bbea725d6016847519dfc8cd2c83d56d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roope=20Gr=C3=B6hn?= <7101328+roopeg@users.noreply.github.com> Date: Sat, 17 Oct 2026 19:38:15 +0300 Subject: [PATCH] i18n: add Finnish (fi) interface language Adds Finnish catalogs (fi.json, fi-formats.json), the language table entry and menu command, Finnish tests, docs and an attribution row. What's New text stays English, as in most catalogs. AI-assisted translation (Claude Code), reviewed by a native Finnish speaker. Co-Authored-By: Claude Sonnet 5.5 --- README.md | 2 +- ROADMAP.md | 3 +- assets/ATTRIBUTION.md | 1 + crates/ui-egui/locales/fi-formats.json | 299 +++ crates/ui-egui/locales/fi.json | 2315 +++++++++++++++++++++ crates/ui-egui/src/i18n.rs | 110 +- crates/ui-egui/src/menus.rs | 2 + crates/ui-egui/src/panels/keyword_list.rs | 4 +- docs/localization-fi.md | 62 + docs/localization-parity.md | 6 +- docs/localization.md | 5 +- 11 files changed, 2799 insertions(+), 10 deletions(-) create mode 100644 crates/ui-egui/locales/fi-formats.json create mode 100644 crates/ui-egui/locales/fi.json create mode 100644 docs/localization-fi.md diff --git a/README.md b/README.md index 38ff85898..8913a4c78 100644 --- a/README.md +++ b/README.md @@ -448,7 +448,7 @@ CRAFT_FONTS_DIR=../craft-fonts cargo run --release -p lightcraft Without it LightCraft builds and runs the same, but Chinese and Japanese text have no glyphs. Fonts are never committed to this repo — the standard for what goes there lives with it: see the [craft-fonts README](https://github.com/storytold/craft-fonts#readme). -**Interface language:** **Edit → Language** (English, 简体中文, 繁體中文(台灣), 日本語, Português (Brasil), Español, Deutsch, Русский, Français, Українська, Polski, Čeština, Italiano, ქართული) or **Settings → General → +**Interface language:** **Edit → Language** (English, 简体中文, 繁體中文(台灣), 日本語, Português (Brasil), Español, Deutsch, Русский, Français, Українська, Polski, Čeština, Italiano, ქართული, Suomi) or **Settings → General → Language**; the choice applies immediately and persists. See [docs/localization.md](docs/localization.md). **Logs:** the desktop app writes its log to standard error and to `logs/lightcraft.log` in its settings folder diff --git a/ROADMAP.md b/ROADMAP.md index f142cd226..24e0d5c38 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -96,7 +96,7 @@ while lower-layer errors stay English. Detail: [localization-parity.md](docs/loc | Korean | ko | 0% | none (no Hangul face) | | Vietnamese | vi | 0% | none | -Also shipped: Traditional Chinese (87%), Russian (74%), Ukrainian (99%), Italian (92%), Georgian (100%). +Also shipped: Traditional Chinese (87%), Russian (74%), Ukrainian (99%), Italian (92%), Georgian (100%), Finnish (79%). ## Upcoming @@ -192,6 +192,7 @@ Ranked toward beta; detail in [docs/roadmap.md](docs/roadmap.md), gaps in [docs/ | 2026-10-12 | minor | Mamiya MEF decoded and imported: ZD verified (241); headline numbers unchanged | | 2026-10-12 | minor | Epson ERF decoded: 3 more verified models (240); headline numbers unchanged | | 2026-10-12 | minor | Georgian (`ka`) interface language added (every catalog message) | +| 2026-10-17 | minor | Finnish (`fi`) interface language added: 2,610 of 3,308 messages (79%), locale, menu command and tests; headline numbers unchanged | | 2026-10-14 | minor | Full-resolution zoom (gap 4) closed: soft proofing gets zoom windows; headline numbers unchanged | | 2026-10-12 | minor | UI/UX remaining 40–70 h → 34–58 h (accessibility audit landed); headline numbers unchanged | | 2026-10-14 | minor | Camera-coverage sweep (#1327): 30 models verified on 40 CC0 files (coverage.py 515 → 545 verified); sensor verification does not establish colour parity (#1277); headline numbers unchanged | diff --git a/assets/ATTRIBUTION.md b/assets/ATTRIBUTION.md index 7f8a8a719..6cc3581fd 100644 --- a/assets/ATTRIBUTION.md +++ b/assets/ATTRIBUTION.md @@ -34,6 +34,7 @@ covers a whole directory), or if a licence file referenced in the Licence column | `crates/ui-egui/locales/cs.json`, `crates/ui-egui/locales/cs-formats.json` | Czech interface catalogs | @Losminek with AI assistance (Codex) | original work: translations of English source phrases, reviewed against the app UI conventions; no external translation material | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | 2026-10-11 | catalog coverage, Czech dates and count-neutral wording; independent scope/terminology review; native-speaker proofreading pending | | `crates/ui-egui/locales/it.json`, `crates/ui-egui/locales/it-formats.json` | Italian interface catalogs | @GabrielePecchioli with Claude Code; PhotoCraft, VectorCraft, PdfCraft and WordCraft translation contributors for reused labels | original translations from English source; 410 initial English-key matches reviewed from [PhotoCraft da3da09](https://github.com/storytold/photocraft/blob/da3da0942c14c1159f40c652afcf33584332c733/crates/ui-egui/src/i18n/it.tsv), [VectorCraft 5432821](https://github.com/storytold/vectorcraft/blob/543282148007bcb5633c493a5374cd26b0339c8d/crates/ui-egui/src/i18n/it.tsv), [PdfCraft e8e275c](https://github.com/storytold/pdfcraft/blob/e8e275cbd40ccd0dc6b56f82b16a575571043702/crates/ui-egui/src/i18n/it.tsv) and the Italian WordCraft catalog ([storytold/wordcraft#598](https://github.com/storytold/wordcraft/pull/598)); 46 of them retranslated where the sibling's meaning didn't fit a photo app | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`, also the source repositories' licences) | 2026-10-12 | adapted to LightCraft photo-development context, count-neutral labels for Italian plural agreement, reviewed placeholders | | `crates/ui-egui/locales/ka.json`, `crates/ui-egui/locales/ka-formats.json` | Georgian interface catalogs | Davit Matchakhelidze with Claude; WordCraft, GridCraft, PhotoCraft, FilmCraft and VectorCraft Georgian catalogs for reused labels | original translations from the English source (meaning-based, no vendor localization used); 450 English-key matches reused from the sibling Craft apps' Georgian catalogs | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | 2026-10-12 | adapted to LightCraft photo-library and raw-development context; count-neutral numerals; placeholders checked | +| `crates/ui-egui/locales/fi.json`, `crates/ui-egui/locales/fi-formats.json` | Finnish interface catalogs | @roopeg with Claude Code (AI-assisted; native-speaker review by @roopeg) | original work: translations of the English source phrases, using common Finnish photo-editing vocabulary; no external translation material | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | 2026-10-17 | count-neutral labels for Finnish partitive agreement, Finnish dates and times (`20.9.2026`, `16:04`), reviewed placeholders | Notes - Fonts authored or published by Adobe (Source Sans/Serif/Code, Source Han, …) are not used, even though some are diff --git a/crates/ui-egui/locales/fi-formats.json b/crates/ui-egui/locales/fi-formats.json new file mode 100644 index 000000000..928d3e115 --- /dev/null +++ b/crates/ui-egui/locales/fi-formats.json @@ -0,0 +1,299 @@ +{ + " ({unsure} with several look-alike files: use Locate)": " ({unsure} usealla samannäköisellä tiedostolla: käytä Paikanna)", + " ({} in Recently Deleted)": " ({} Äskettäin poistetuissa)", + " in {g} group{}": " · ryhmiä: {g}{:.0}", + " · kept, not applied: {}": " · säilytetty, ei käytetty: {}", + " · {:.0}% clipped": " · {:.0}% leikkautunut", + " · {failed} couldn't be rendered": " · renderöinti epäonnistui: {failed}", + " · {n} skipped (could not be rendered)": " · {n} ohitettu (renderöinti ei onnistunut)", + " · {queued} waiting": " · odottaa: {queued}", + " · {skipped} skipped (file exists)": " · {skipped} ohitettu (tiedosto on olemassa)", + " · {} duplicate{} skipped": " · ohitettuja kaksoiskappaleita: {}{:.0}", + " · {} failed: {}": " · {} epäonnistui: {}", + " · {} moved": " · {} siirretty", + " · {} not readable": " · {} ei luettavissa", + " · {} original{} left at the source": " · alkuperäisiä jäi lähteeseen: {}{:.0}", + " · {} restored from Recently Deleted": " · {} palautettu Äskettäin poistetuista", + " — Capture One won't import a list with ; , < or > in a keyword: {names}": " — Capture One ei tuo luetteloa, jonka avainsanassa on ; , < tai >: {names}", + " — kept but not applied: {}": " — säilytetty mutta ei käytetty: {}", + " — left out, as a keyword list can't hold them: {names}": " — jätetty pois, koska avainsanaluettelo ei voi sisältää niitä: {names}", + " — not carried over: {}{}": " — ei siirretty: {}{}", + "+{n} more": "+{n} lisää", + "+{} more": "+{} lisää", + ", {failed} file{} not readable": ", ei luettavissa olevia tiedostoja: {failed}{:.0}", + ", {} label": ", {} merkintä", + ", {} star{}": ", tähtiä {}{:.0}", + "1 task is still running: {names}. Quitting stops it.": "1 tehtävä on yhä käynnissä: {names}. Lopettaminen pysäyttää sen.", + "; {kept} already had a location": "; jo sijaintitiedolliset: {kept}", + "; {n} gained synonyms": "; {n} sai synonyymejä", + "; {outside} outside its time range": "; {outside} aika-alueen ulkopuolella", + "@{}: {} PRs, {} commits, +{} / −{} lines (Δ {}), +{} / −{} binary assets, {} – {}": "@{}: PR:t {}, commitit {}, rivit +{} / −{} (Δ {}), binääriresurssit +{} / −{}, {} – {}", + "Add {local_n} to My Photos": "Lisää {local_n} Omiin kuviin", + "Add {} Photo{}": "Lisää kuvia: {}{:.0}", + "Add {} Photo{}, restore {}": "Lisää kuvia: {}{:.0}, palauta {}", + "Add “{}” to Favorites": "Lisää ”{}” suosikkeihin", + "Added {n} keyword{}": "Lisättyjä avainsanoja: {n}{:.0}", + "Added {n} photo{} to My Photos": "Omiin kuviin lisättyjä kuvia: {n}{:.0}", + "Added {n} photo{} to “{}”": "Lisättyjä kuvia kohteeseen ”{1}”: {n}{0:.0}", + "Added {what} to {name}": "{what} lisätty kohteeseen {name}", + "Added “{keyword}” to {n} photo{}": "Avainsana ”{keyword}” lisätty kuviin: {n}{:.0}", + "Adding photos… {} of {}": "Lisätään kuvia… {} / {}", + "All {n} selected photos move by the same amount.": "Kaikkia valittuja kuvia ({n}) siirretään saman verran.", + "Already in the library, in Recently Deleted: {} photo{} selected · right-click ▸ Restore, or Delete Permanently to import afresh": "Jo kirjastossa, Äskettäin poistetuissa: valittuja kuvia {}{:.0} · napsauta hiiren kakkospainikkeella → Palauta tai Poista pysyvästi tuodaksesi uudelleen", + "Already in the library: {} photo{} selected in All Photos": "Jo kirjastossa (Kaikki kuvat): valittuja kuvia {}{:.0}", + "Already in “{}”": "Jo kohteessa ”{}”", + "Applied {name}": "{name} käytetty", + "Apply to “{mask}” on Selected Photos": "Käytä maskiin ”{mask}” valituissa kuvissa", + "Auto ({})": "Auto ({})", + "Auto Import: added {} photo{}": "Automaattinen tuonti: lisättyjä kuvia {}{:.0}", + "Auto Sync: edits apply to {n} photos": "Automaattinen synkronointi: muokkaukset koskevat kuvia: {n}", + "Automatic ({} MB)": "Automaattinen ({} Mt)", + "Build 1:1 Previews ({scope})": "Luo 1:1-esikatselut ({scope})", + "Build Smart Previews ({scope})": "Luo älyesikatselut ({scope})", + "Build Standard-Sized Previews ({scope})": "Luo vakiokokoiset esikatselut ({scope})", + "Building previews for {} photos…": "Luodaan esikatseluja {} kuvalle…", + "Click {}:1": "Napsautus {}:1", + "Color space: Rec. 2020 {curve} (HDR AVIF)": "Väriavaruus: Rec. 2020 {curve} (HDR AVIF)", + "Couldn't open the editor: {e}": "Muokkausohjelmaa ei voitu avata: {e}", + "Create Keyword Tag Inside “{name}”…": "Luo avainsanatunniste kohteen ”{name}” sisään…", + "Create the keyword “{name}”": "Luo avainsana ”{name}”", + "Create {n} Virtual Copies": "Luo {n} virtuaalikopiota", + "Creates {} stacks from {} of {scope}": "Luo pinoja: {} · kuvia: {} ({scope})", + "Decoder: {reason}": "Purkaja: {reason}", + "Delete \"{label}\"": "Poista ”{label}”", + "Delete \"{label}\" (and the mask)": "Poista ”{label}” (ja maski)", + "Delete the effect preset “{name}”?": "Poistetaanko tehosteesiasetus ”{name}”?", + "Delete the keyword “{name}”?": "Poistetaanko avainsana ”{name}”?", + "Delete these {n} effect presets?": "Poistetaanko nämä {n} tehosteesiasetusta?", + "Delete {n} Photos": "Poista {n} kuvaa", + "Delete {n} effect preset{}? This can't be undone.": "Poistetaanko tehosteesiasetuksia: {n}{:.0}? Tätä ei voi kumota.", + "Delete “{current}”": "Poista ”{current}”", + "Delete “{name}”?": "Poistetaanko ”{name}”?", + "Denoising {name}: {done} of {total} tiles{}": "Kohinanpoisto {name}: {done} / {total} ruutua{}", + "Discard Smart Previews ({scope})": "Hylkää älyesikatselut ({scope})", + "Done ({what}): {done} photo{plural}": "Valmis ({what}): kuvia {done}{plural:.0}", + "Downloads from {host}. Once it has arrived and checked out, LightCraft installs it, {after}.": "Latautuu osoitteesta {host}. Kun se on saapunut ja tarkistettu, LightCraft asentaa sen, {after}.", + "Duplicate \"{label}\"": "Monista ”{label}”", + "Effect: {name}": "Tehoste: {name}", + "Example: {example}": "Esimerkki: {example}", + "Exported to {path}": "Viety kohteeseen {path}", + "Exported {n} keyword{}": "Viety avainsanoja: {n}{:.0}", + "Exported {n} photo{}": "Viety kuvia: {n}{:.0}", + "Exported {ok} of {total} photo{}": "Viety kuvia: {ok} / {total}{:.0}", + "Exported {} effect preset{}": "Viety tehosteesiasetuksia: {}{:.0}", + "Exported {} point curve preset{}": "Viety pistekäyrän esiasetuksia: {}{:.0}", + "Exported {} preset{}": "Viety esiasetuksia: {}{:.0}", + "Exporting {} of {total}": "Viedään {} / {total}", + "Filter bar — {active} active filter{}": "Suodatinpalkki — aktiivisia suodattimia: {active}{:.0}", + "Filtered: {label}": "Suodatettu: {label}", + "Focus {:.0}": "Tarkennus {:.0}", + "Folder “{}” (and its subfolders)": "Kansio ”{}” (ja sen alikansiot)", + "Found {n} missing photo{}; {left} still missing{unsure}": "Löydettyjä puuttuvia kuvia: {n}{:.0}; edelleen puuttuu: {left}{unsure}", + "Healed {n} dust spot{}": "Korjattuja pölyhiukkasia: {n}{:.0}", + "Import cancelled · {} photo{} added": "Tuonti peruttu · lisättyjä kuvia: {}{:.0}", + "Import failed: {e}": "Tuonti epäonnistui: {e}", + "Import warnings ({n}):\n{warnings}": "Tuontivaroitukset ({n}):\n{warnings}", + "Imported {e} mask effect{} (Masking ▸ Effect)": "Tuotuja maskitehosteita: {e}{:.0} (Maskaus → Tehoste)", + "Imported {name}": "{name} tuotu", + "Imported {n} point curve preset{}": "Tuotuja pistekäyrän esiasetuksia: {n}{:.0}", + "Imported {n} preset{}": "Tuotuja esiasetuksia: {n}{:.0}", + "Imported {n} preset{}, {f} file{} not readable": "Tuotuja esiasetuksia: {n}{:.0}, ei luettavissa olevia tiedostoja: {f}{:.0}", + "Imported {profiles} profile{} (Profile browser ▸ their groups)": "Tuotuja profiileja: {profiles}{:.0} (Profiiliselain → niiden ryhmät)", + "Imported {} photo{}": "Tuotuja kuvia: {}{:.0}", + "In line for AI Denoise ({ahead} ahead)…": "Jonossa tekoälykohinanpoistoon ({ahead} edellä)…", + "Insert at the cursor (also written {})": "Lisää kohdistimen kohtaan (kirjoitetaan myös {})", + "It is taken off {count} photo{}, with the keywords below it. Undo brings it back.": "Se poistetaan {count} kuvalta{:.0}, alla olevat avainsanat mukaan lukien. Kumoa palauttaa sen.", + "Keywords of {n} selected photos": "Valittujen kuvien ({n}) avainsanat", + "Label Set: {name}": "Merkintäjoukko: {name}", + "LightCraft can't decode this raw variant yet ({}). You're editing the camera's embedded JPEG preview, which already includes the camera's picture style (e.g. Monochrome) and white balance.": "LightCraft ei vielä osaa purkaa tätä raw-muunnelmaa ({}). Muokkaat kameran upotettua JPEG-esikatselua, joka sisältää jo kameran kuvatyylin (esim. Monochrome) ja valkotasapainon.", + "LightCraft could not open its window: {e}": "LightCraft ei voinut avata ikkunaansa: {e}", + "LightCraft could not open its window: {e}\n\nThe log file has the details: {path}": "LightCraft ei voinut avata ikkunaansa: {e}\n\nLokitiedostossa on lisätietoja: {path}", + "LightCraft stopped unexpectedly: {e}": "LightCraft pysähtyi odottamatta: {e}", + "LightCraft stopped unexpectedly: {e}\n\nThe log file has the details: {path}": "LightCraft pysähtyi odottamatta: {e}\n\nLokitiedostossa on lisätietoja: {path}", + "Lightroom catalog inspected: {photos} photos, {collections} collections, {missing} missing": "Lightroom-katalogi tarkastettu: kuvia {photos}, kokoelmia {collections}, puuttuvia {missing}", + "Lightroom geometry for {path} was not preserved; Guided Upright saved transform is unsupported.": "Lightroomin geometriaa ei säilytetty kohteelle {path}; Ohjatun Uprightin tallennettua muunnosta ei tueta.", + "Lightroom geometry for {path} was not preserved; saved Upright transform is unsupported.": "Lightroomin geometriaa ei säilytetty kohteelle {path}; tallennettua Upright-muunnosta ei tueta.", + "Lightroom geometry for {path} was not preserved; saved transform is ignored because Upright is Off.": "Lightroomin geometriaa ei säilytetty kohteelle {path}; tallennettu muunnos ohitetaan, koska Upright on pois päältä.", + "Lightroom geometry was not preserved for {path}; {mode} will be recalculated.": "Lightroomin geometriaa ei säilytetty kohteelle {path}; {mode} lasketaan uudelleen.", + "Lightroom import complete: {imported} photos added": "Lightroom-tuonti valmis: lisättyjä kuvia {imported}", + "Lightroom import complete: {imported} photos added, {failed} failed": "Lightroom-tuonti valmis: lisättyjä kuvia {imported}, epäonnistuneita {failed}", + "Lightroom import complete: {imported} photos added; index warning: {warning}": "Lightroom-tuonti valmis: lisättyjä kuvia {imported}; hakemistovaroitus: {warning}", + "Lightroom import failed: {e}{warning}": "Lightroom-tuonti epäonnistui: {e}{warning}", + "Lightroom inspection failed: {e}{warning}": "Lightroom-tarkastelu epäonnistui: {e}{warning}", + "MIT OR Apache-2.0. Fonts: {} (OFL). Icons: original.": "MIT OR Apache-2.0. Fontit: {} (OFL). Kuvakkeet: omat.", + "Making the denoised picture… {}%": "Tehdään kohinanpoistettua kuvaa… {}%", + "Matches: {}": "Täsmäävät: {}", + "Merging… {stage} {:.0}%": "Yhdistetään… {stage} {:.0}%", + "Move {n} photo{} to “{}”": "Siirrä kuvia kohteeseen ”{1}”: {n}{0:.0}", + "Move {n} photo{} to “{}”?": "Siirretäänkö kuvat kohteeseen ”{1}” ({n}){0:.0}?", + "Move {what} to Recently Deleted?": "Siirretäänkö {what} Äskettäin poistettuihin?", + "Moved {n} photo{} to “{}”. Edit → Undo moves them back.": "Siirretty kuvia kohteeseen ”{1}”: {n}{0:.0}. Muokkaa → Kumoa siirtää ne takaisin.", + "Moved {} photo(s)": "Siirretty kuvia: {}", + "Moved; {} photo(s) relinked": "Siirretty; yhdistetty uudelleen kuvia: {}", + "Named ({named_n})": "Nimetyt ({named_n})", + "New Folder in “{name}”": "Uusi kansio kohteessa ”{name}”", + "On {have} of {of} selected photos": "{have} / {of} valitulla kuvalla", + "Painting “{k}”: click photos to add or remove it · Esc stops": "Maalataan ”{k}”: napsauta kuvia lisätäksesi tai poistaaksesi sen · Esc lopettaa", + "Paste into {n} photo{} — only settings that were copied are pasted": "Liitä kuviin: {n}{:.0} — vain kopioidut asetukset liitetään", + "Preset: {name}": "Esiasetus: {name}", + "Preview only — editing the camera's embedded JPEG ({})": "Vain esikatselu — muokataan kameran upotettua JPEG-kuvaa ({})", + "Preview only — {}": "Vain esikatselu — {}", + "Previews ready for {done} photo{plural}": "Esikatselut valmiina {done} kuvalle{plural:.0}", + "Profile: {}": "Profiili: {}", + "Proof Copy ({})": "Vedoskopio ({})", + "Proof Preview · {}": "Vedoksen esikatselu · {}", + "Put inside “{parent}”": "Laita kohteen ”{parent}” sisään", + "Quick Develop · {n} photos": "Pikakehitys · kuvia: {n}", + "Quick Develop: {name}": "Pikakehitys: {name}", + "Rated {}": "Luokitus {}", + "Reading Lightroom catalog… {done} of {total}": "Luetaan Lightroom-katalogia… {done} / {total}", + "Reading photos… {done} of {total}": "Luetaan kuvia… {done} / {total}", + "Reading photos… {} of {}": "Luetaan kuvia… {} / {}", + "Redo {}": "Tee uudelleen {}", + "Remove “{name}”": "Poista ”{name}”", + "Remove “{name}” and its {count} photo{} from the library?": "Poistetaanko ”{name}” ja sen kuvat ({count}{:.0}) kirjastosta?", + "Remove “{}” from Favorites": "Poista ”{}” suosikeista", + "Removed from {}": "Poistettu kohteesta {}", + "Removed {what} from {name}": "{what} poistettu kohteesta {name}", + "Removed “{name}” from {n} photos. Edit ▸ Undo puts it back.": "”{name}” poistettu {n} kuvalta. Muokkaa → Kumoa palauttaa sen.", + "Rename {n} Photos…": "Nimeä uudelleen {n} kuvaa…", + "Rename “{name}”": "Nimeä uudelleen ”{name}”", + "Renames {n} face{} across the library. The files are not changed.": "Nimeää uudelleen kasvoja koko kirjastossa: {n}{:.0}. Tiedostoja ei muuteta.", + "Renames “{from}” on {n} photo{} (keywords below it too). Use | for levels, e.g. Travel|Italy. An existing name merges the two.": "Nimeää ”{from}” uudelleen {n} kuvassa{:.0} (myös sen alla olevat avainsanat). Käytä |-merkkiä tasojen erottamiseen, esim. Matka|Italia. Olemassa oleva nimi yhdistää nämä kaksi.", + "Rendering on the CPU: {why}": "Renderöidään suorittimella: {why}", + "Replace {} with:": "Korvaa {} seuraavalla:", + "Reset {name}": "Nollaa {name}", + "Reset {} Channel": "Nollaa kanava {}", + "Restore {}": "Palauta {}", + "Restore {} Photo{}": "Palauta kuvia: {}{:.0}", + "Restored {} photo{} from Recently Deleted": "Äskettäin poistetuista palautettu kuvia: {}{:.0}", + "Running on the processor: {}.": "Käytössä suoritin: {}.", + "Running on {}.": "Käytössä: {}.", + "Saved export preset “{}”": "Vientiesiasetus ”{}” tallennettu", + "Saved template {name}": "Mallipohja {name} tallennettu", + "Scores {scope} for focus and exposure and finds similar shots taken within seconds of each other (bursts).": "Pisteyttää {scope} tarkennuksen ja valotuksen mukaan ja etsii samankaltaiset otokset, jotka on otettu sekuntien sisällä toisistaan (sarjat).", + "Show {hidden} hidden location{}": "Näytä piilotettuja sijainteja: {hidden}{:.0}", + "Showing {n} of {}": "Näytetään {n} / {}", + "Shows the model's terms, then downloads {} from {host}, installs it and starts using it. Nothing else is sent.": "Näyttää mallin ehdot, lataa sitten {} osoitteesta {host}, asentaa sen ja ottaa sen käyttöön. Mitään muuta ei lähetetä.", + "Skipped {problem}": "Ohitettu {problem}", + "Slideshow exported: {what}": "Diaesitys viety: {what}", + "Smart album: {}": "Älyalbumi: {}", + "Tagged {n} photo{} from the tracklog": "Reittilokista merkittyjä kuvia: {n}{:.0}", + "Template preview: {name}": "Mallipohjan esikatselu: {name}", + "The SAM 3 download failed: {e}": "SAM 3:n lataus epäonnistui: {e}", + "The XMP sidecars of {n} photos couldn't be written (is their folder offline?). LightCraft keeps trying.": "Kuvien XMP-sivutiedostoja ei voitu kirjoittaa ({n}; onko niiden kansio offline-tilassa?). LightCraft yrittää edelleen.", + "There is a keyword set “{name}” already": "Avainsanajoukko ”{name}” on jo olemassa", + "There is a “{name}” at the top level already. Merge the two?": "Ylimmällä tasolla on jo ”{name}”. Yhdistetäänkö ne?", + "Trained on: {provenance}": "Koulutettu aineistolla: {provenance}", + "Undo {}": "Kumoa {}", + "Unknown tag{s} {} stay{} as typed (see Tags)": "Tuntemattomat tunnisteet{s:.0} {} pysyvät sellaisinaan{:.0} (katso Tunnisteet)", + "Update “{name}” with Current Settings": "Päivitä ”{name}” nykyisillä asetuksilla", + "Updated {name}": "{name} päivitetty", + "Updated “{name}”": "”{name}” päivitetty", + "Version {} — a clean-room, pure-Rust photo library and raw developer.": "Versio {} — clean-room-menetelmällä tehty, puhtaasti Rustilla toteutettu kuvakirjasto ja raw-kehitin.", + "Version: {}": "Versio: {}", + "Virtual copy “{name}” of {of}": "Virtuaalikopio ”{name}” kuvasta {of}", + "Working on {what} for {} photos…": "Käsitellään {what} {} kuvalle…", + "XMP adjustments were not imported for {path}: {fields}.": "XMP-säätöjä ei tuotu kohteelle {path}: {fields}.", + "XMP profile \"{profile}\" was not applied for {path}; colors may differ from Lightroom.": "XMP-profiilia ”{profile}” ei käytetty kohteelle {path}; värit voivat poiketa Lightroomista.", + "new, inside {parent}": "uusi, kohteen {parent} sisällä", + "none (CPU rendering): {why}": "ei mitään (suoritinrenderöinti): {why}", + "not added to Apple Photos: {e}": "ei lisätty Apple Kuviin: {e}", + "the {n} selected photos": "valitut kuvat ({n})", + "the {} photos in view": "näkymän kuvat ({})", + "these {count} photos": "nämä kuvat ({count})", + "{:.1} MB": "{:.1} Mt", + "{count} more warnings.": "Varoituksia lisäksi: {count}.", + "{count} smart preview{} · {:.1} MB": "Älyesikatseluita: {count}{:.0} · {:.1} Mt", + "{done} of {total}": "{done} / {total}", + "{done} of {total} MB": "{done} / {total} Mt", + "{file} · {size}": "{file} · {size}", + "{f} folders (and their subfolders)": "Kansioita: {f} (ja niiden alikansiot)", + "{label} Grading": "{label}: väriluokittelu", + "{label} {d:+} on every selected photo": "{label} {d:+} jokaisessa valitussa kuvassa", + "{label} {index} of {n}": "{label} {index} / {n}", + "{label}, {n} photos": "{label}, kuvia: {n}", + "{matching} of {t} photos": "Kuvia: {matching} / {t}", + "{matching} photos": "Kuvia: {matching}", + "{missing} originals are missing. Their catalog records are available; use Find Missing Photos to relink them.": "Puuttuvia alkuperäisiä: {missing}. Niiden katalogitietueet ovat käytettävissä; yhdistä ne uudelleen komennolla Etsi puuttuvat kuvat.", + "{mode} spot {} of {}": "{mode} täplä {} / {}", + "{month}": "{month}", + "{month} {year}": "{month}/{year}", + "{msg} ({failed} failed)": "{msg} ({failed} epäonnistui)", + "{name} Label": "Merkintä: {name}", + "{name} Off": "{name} pois", + "{name} On": "{name} päällä", + "{name} opened for editing; it is stacked with the original": "{name} avattu muokattavaksi; se pinotaan alkuperäisen kanssa", + "{name} opened in the other editor": "{name} avattu toisessa muokkausohjelmassa", + "{name} · {terms}": "{name} · {terms}", + "{name} — double-click to reset it": "{name} — kaksoisnapsauta nollataksesi sen", + "{n} JPEG files": "JPEG-tiedostoja: {n}", + "{n} Local photo{} skipped: albums hold library photos (Add to My Photos first)": "Ohitettuja paikallisia kuvia: {n}{:.0}: albumit sisältävät kirjaston kuvia (lisää ensin Omiin kuviin)", + "{n} added to Apple Photos": "{n} lisätty Apple Kuviin", + "{n} added to Apple Photos album “{album}”": "{n} lisätty Apple Kuvien albumiin “{album}”", + "{n} change{} couldn't be written to disk: {e}\nIf you quit now, {} lost.": "Muutoksia, joita ei voitu kirjoittaa levylle: {n}{:.0}: {e}\nJos lopetat nyt, menetät ne.{:.0}", + "{n} change{} saved in memory but not written to disk: {e}\nLightCraft retries automatically; quitting now would lose {}.": "Muistiin tallennettuja, levylle kirjoittamattomia muutoksia: {n}{:.0}: {e}\nLightCraft yrittää automaattisesti uudelleen; nyt lopettaminen menettäisi ne.{:.0}", + "{n} change{} saved in memory but not written to disk: {e} — LightCraft will retry": "Muistiin tallennettuja, levylle kirjoittamattomia muutoksia: {n}{:.0}: {e} — LightCraft yrittää uudelleen", + "{n} found · {sel} selected": "Löytyi: {n} · valittu: {sel}", + "{n} originals opened in the other editor": "Toisessa muokkausohjelmassa avattuja alkuperäisiä: {n}", + "{n} pages": "Sivuja: {n}", + "{n} photos": "Kuvia: {n}", + "{n} photos in view · {slides} slides · {time}": "Kuvia näkymässä: {n} · dioja: {slides} · {time}", + "{n} photos in {} are hidden by the filters above": "Yllä olevat suodattimet piilottavat kuvia kohteessa {}: {n}", + "{n} photos opened for editing; each is stacked with its original": "Muokattavaksi avattuja kuvia: {n}; kukin pinotaan alkuperäisensä kanssa", + "{n} photo{}": "Kuvia: {n}{:.0}", + "{n} photo{} match · updates automatically as photos change": "Täsmääviä kuvia: {n}{:.0} · päivittyy automaattisesti kuvien muuttuessa", + "{n} photo{} now · updates automatically as photos change": "Kuvia nyt: {n}{:.0} · päivittyy automaattisesti kuvien muuttuessa", + "{n} preset{}": "Esiasetuksia: {n}{:.0}", + "{n} raws can now be developed from their raw data": "Raw-kuvia, jotka voidaan nyt kehittää raakadatastaan: {n}", + "{n} selected photos · {pages} pages": "Valittuja kuvia: {n} · sivuja: {pages}", + "{n} similar photo{} · View ▸ Clear Filters to see all": "Samankaltaisia kuvia: {n}{:.0} · Näytä → Tyhjennä suodattimet näyttääksesi kaikki", + "{n} tasks are still running: {names}. Quitting stops them.": "Käynnissä olevia tehtäviä: {n}: {names}. Lopettaminen pysäyttää ne.", + "{n} {noun}": "{n} {noun}", + "{pct} %": "{pct} %", + "{photos} catalog records processed; {collections} collections.": "Käsiteltyjä katalogitietueita: {photos}; kokoelmia: {collections}.", + "{pid} (missing)": "{pid} (puuttuu)", + "{sel_n} selected · {counted}": "Valittu: {sel_n} · {counted}", + "{size} GB": "{size} Gt", + "{stage}… {:.0}%": "{stage}… {:.0}%", + "{s} s of AV1 video": "{s} s AV1-videota", + "{verb} {n} Photo{}": "{verb} kuvia: {n}{:.0}", + "{weekday}, {day}": "{weekday} {day}.", + "{weekday}, {day} {month} {year}": "{weekday} {day}.{month}.{year}", + "{what} merge added": "{what}: yhdistetty kuva lisätty", + "{what} merge added at {mp}, the largest a panorama can be (its full size is {full})": "{what}: yhdistetty kuva lisätty koossa {mp}, joka on suurin mahdollinen panoraama (täysi koko on {full})", + "{what} merge added at {mp}: its full size, {full}, needs more memory than this computer has": "{what}: yhdistetty kuva lisätty koossa {mp}: sen täysi koko, {full}, vaatisi enemmän muistia kuin tällä tietokoneella on", + "{what} merge cancelled": "{what}: yhdistäminen peruttu", + "{what} merge failed: {e}": "{what}: yhdistäminen epäonnistui: {e}", + "{year}": "{year}", + "{{date:…}} directives: {}": "{{date:…}}-ohjausmerkit: {}", + "{} KB": "{} kt", + "{} MB": "{} Mt", + "{} and higher": "{} ja ylöspäin", + "{} contributors · {} commits": "Tekijöitä: {} · committeja: {}", + "{} failed": "{} epäonnistui", + "{} files": "Tiedostoja: {}", + "{} files and {f} folder{}": "Tiedostoja: {}, kansioita: {f}{:.0}", + "{} item{}": "Kohteita: {}{:.0}", + "{} label (click more labels to show any of them)": "Merkintä: {} (napsauta lisää merkintöjä näyttääksesi minkä tahansa niistä)", + "{} of 4 guides — drag along lines that should be vertical or horizontal.": "{} / 4 apuviivaa — vedä pysty- tai vaakasuoraksi tarkoitettujen viivojen suuntaisesti.", + "{} of {} from {host}": "{} / {} kohteesta {host}", + "{} photos": "Kuvia: {}", + "{} photos · exposures {} EV": "Kuvia: {} · valotukset {} EV", + "{} photos · {} · {:.0}° × {:.0}°": "Kuvia: {} · {} · {:.0}° × {:.0}°", + "{} photo{} not readable": "Ei luettavissa olevia kuvia: {}{:.0}", + "{} sample{}": "Näytteitä: {}{:.0}", + "{} sec": "{} s", + "{} spot(s) on this photo": "Täpliä tässä kuvassa: {}", + "{} · {}. Kept in the library's “denoise” folder; the oldest ones that no photo uses go first when the limit is reached.": "{} · {}. Säilytetään kirjaston ”denoise”-kansiossa; vanhimmat, joita mikään kuva ei käytä, poistuvat ensin, kun raja tulee vastaan.", + "{} — show their photos": "{} — näytä niiden kuvat", + "· {dups} already in the library": "· {dups} jo kirjastossa", + "· {in_source} identical copies": "· identtisiä kopioita: {in_source}", + "· {n} photo{}": "· kuvia: {n}{:.0}", + "· {trashed} in Recently Deleted": "· {trashed} Äskettäin poistetuissa", + "“{parent}” has a “{name}” already. Merge the two?": "Kohteessa ”{parent}” on jo ”{name}”. Yhdistetäänkö ne?", + "“{to}” is already a person. Combining them makes one person; Undo separates them again.": "”{to}” on jo henkilö. Yhdistäminen tekee kahdesta yhden henkilön; Kumoa erottaa ne uudelleen.", + "• {assumption}": "• {assumption}", + "… and {more} more": "… ja {more} lisää", + "…and {more} more": "…ja {more} lisää" +} diff --git a/crates/ui-egui/locales/fi.json b/crates/ui-egui/locales/fi.json new file mode 100644 index 000000000..ff1707ac7 --- /dev/null +++ b/crates/ui-egui/locales/fi.json @@ -0,0 +1,2315 @@ +{ + " (library default)": " (kirjaston oletus)", + " (inverted)": " (käänteinen)", + " · best of its burst": " · sarjan paras", + " · in a burst": " · osa sarjaa", + "% of all commits": "% kaikista commiteista", + "& Containing": "& sisältää", + "(not in the library)": "(ei kirjastossa)", + "+ Group": "+ Ryhmä", + "+ Rule": "+ Sääntö", + ", picked": ", valittu kuva", + ", rejected": ", hylätty", + "0: nothing is rejected.": "0: mitään ei hylätä.", + "1 day": "1 päivä", + "1 raw can now be developed from its raw data": "1 raw-kuva voidaan nyt kehittää raakadatastaan", + "150 dpi · sRGB · current edits · fit without cropping": "150 dpi · sRGB · nykyiset muokkaukset · sovita rajaamatta", + "2026-04 or 2026-04-12": "2026-04 tai 2026-04-12", + "= exactly": "= täsmälleen", + "A 16:9 frame with black bars above and below, the title in the corner, fades through black and a closing card.": "16:9-kehys, jossa mustat palkit ylä- ja alapuolella, otsikko kulmassa, häivytys mustan kautta ja päätöskortti.", + "A blank template keeps the original names.": "Tyhjä mallipohja säilyttää alkuperäiset nimet.", + "A dark slate backdrop with the exposure, ISO and focal length, then the camera and lens, under each photo.": "Tumma liuskekivitausta, jossa kunkin kuvan alla valotus, ISO ja polttoväli sekä kamera ja objektiivi.", + "A face model uses the GPU only when a check shows it gives the same results faster.": "Kasvomalli käyttää GPU:ta vain, jos tarkistus osoittaa sen antavan samat tulokset nopeammin.", + "A filter is hiding this view's photos: change it, or clear it (View → Clear Filters)": "Suodatin piilottaa tämän näkymän kuvat: muuta sitä tai tyhjennä se (Näytä → Tyhjennä suodattimet)", + "A folder is already being synchronized": "Kansio on jo synkronoitumassa", + "A folder is being synchronized": "Kansiota synkronoidaan", + "A keyword set needs a name": "Avainsanajoukolle täytyy antaa nimi", + "A light grey wall with a white mat and a soft shadow; the caption and the rating under the photo.": "Vaaleanharmaa seinä, valkoinen paspis ja pehmeä varjo; kuvateksti ja luokitus kuvan alla.", + "A one-time download of about": "Kertaluonteinen lataus, noin", + "A pen's pressure sets the size and flow of the brush": "Kynän paine määrittää sivellimen koon ja virtauksen", + "A slide stays up for its duration, its fade in included. A fade of 0 cuts.": "Dia pysyy näkyvillä kestonsa ajan, häivytys mukaan lukien. Häivytys 0 vaihtaa suoraan.", + "AI Denoise": "Tekoälykohinanpoisto", + "AI Denoise Model": "Tekoälykohinanpoiston malli", + "AI Denoise is enabled on the requesting photo": "Tekoälykohinanpoisto on käytössä sitä pyytävällä kuvalla", + "AI Denoise is off: press Use on a model.": "Tekoälykohinanpoisto on pois päältä: paina mallin kohdalla Käytä.", + "AI Denoise needs a model. Install one in Settings.": "Tekoälykohinanpoisto tarvitsee mallin. Asenna sellainen asetuksissa.", + "AI Mask Model Status": "Tekoälymaskin mallin tila", + "AV1 video, each slide held for its duration with its fades. No sound: music is not exported yet.": "AV1-video, jossa kutakin diaa näytetään sen keston ajan häivytyksineen. Ei ääntä: musiikkia ei vielä viedä.", + "About": "Tietoja", + "About LightCraft": "Tietoja LightCraftista", + "Accept & Download": "Hyväksy ja lataa", + "Active": "Aktiivinen", + "Activity": "Toiminta", + "Actual size": "Todellinen koko", + "Add": "Lisää", + "Add Catchlight": "Lisää silmänvalo", + "Add Face Model…": "Lisää kasvomalli…", + "Add Folder to Local": "Lisää kansio paikalliseen", + "Add Mask": "Lisää maski", + "Add Object Click": "Lisää kohdenapsautus", + "Add Point Color Sample": "Lisää pistevärin näyte", + "Add Red Eye Correction": "Lisää punasilmäisyyden korjaus", + "Add Remove Spot": "Lisää poistotäplä", + "Add Selected Photos": "Lisää valitut kuvat", + "Add a Face Recognition Model": "Lisää kasvojentunnistusmalli", + "Add a cell": "Lisää solu", + "Add a model file…": "Lisää mallitiedosto…", + "Add a rule (⌥-click: a group)": "Lisää sääntö (⌥-napsautus: ryhmä)", + "Add in place": "Lisää paikalleen", + "Add in place: the library references the files where they are; nothing is copied or moved.": "Lisää paikalleen: kirjasto viittaa tiedostoihin niiden nykyisessä sijainnissa; mitään ei kopioida tai siirretä.", + "Add keyword": "Lisää avainsana", + "Add number": "Lisää numero", + "Add text overlay": "Lisää tekstipeittokuva", + "Add to": "Lisää kohteeseen", + "Add to Album": "Lisää albumiin", + "Add to All Selected Photos": "Lisää kaikkiin valittuihin kuviin", + "Add to Apple Photos": "Lisää Apple Kuviin", + "Add to Favorites": "Lisää suosikkeihin", + "Add to Local": "Lisää paikalliseen", + "Add to My Photos": "Lisää Omiin kuviin", + "Add to My Photos First": "Lisää ensin Omiin kuviin", + "Add to Selected Photos": "Lisää valittuihin kuviin", + "Add to Target Album": "Lisää kohdealbumiin", + "Add to this mask": "Lisää tähän maskiin", + "Add/Subtract/Intersect Mask": "Lisää/vähennä/leikkaa maski", + "Added to photos you import that don't already have it.": "Lisätään tuotaviin kuviin, joilla sitä ei vielä ole.", + "Adding": "Lisätään", + "Adding Lightroom photos…": "Lisätään Lightroom-kuvia…", + "Adding photos…": "Lisätään kuvia…", + "Adding to Apple Photos": "Lisätään Apple Kuviin", + "Adding to Apple Photos…": "Lisätään Apple Kuviin…", + "Advanced search…": "Tarkennettu haku…", + "After": "Jälkeen", + "After 30 days": "30 päivän kuluttua", + "After 7 days": "7 päivän kuluttua", + "After 90 days": "90 päivän kuluttua", + "After a year": "Vuoden kuluttua", + "After installation, AI Denoise will turn on for the requesting photo.": "Asennuksen jälkeen tekoälykohinanpoisto otetaan käyttöön sitä pyytävälle kuvalle.", + "Album": "Albumi", + "Albums": "Albumit", + "Albums hold library photos: Add to My Photos first": "Albumit sisältävät kirjaston kuvia: lisää ensin Omiin kuviin", + "All": "Kaikki", + "All Metadata": "Kaikki metatiedot", + "All Metadata…": "Kaikki metatiedot…", + "All Photos": "Kaikki kuvat", + "All rights reserved": "Kaikki oikeudet pidätetään", + "All the photos imported from this disk are included.": "Kaikki tältä levyltä tuodut kuvat sisältyvät.", + "All types": "Kaikki tyypit", + "Already installed. Installing again is harmless.": "On jo asennettu. Uudelleenasennus on vaaratonta.", + "Already installed. Remove it before installing a replacement.": "On jo asennettu. Poista se ennen korvaavan mallin asentamista.", + "Also the masks of the same name on the other selected photos": "Myös samannimiset maskit muissa valituissa kuvissa", + "Alt Text": "Vaihtoehtoinen teksti", + "Always": "Aina", + "Amount": "Määrä", + "Analyzing the photo for AI masks…": "Analysoidaan kuvaa tekoälymaskeja varten…", + "Anchored to": "Kiinnitetty kohteeseen", + "Angle": "Kulma", + "Animal Eye Tracking": "Eläinten silmien seuranta", + "Another library was opened since the photos were dropped: nothing was moved": "Toinen kirjasto avattiin kuvien pudottamisen jälkeen: mitään ei siirretty", + "Any Searchable Text": "Mikä tahansa haettava teksti", + "Any camera": "Mikä tahansa kamera", + "Any keyword": "Mikä tahansa avainsana", + "Any lens": "Mikä tahansa objektiivi", + "Aperture": "Aukko", + "Appearance": "Ulkoasu", + "Appearance Mode": "Ulkoasutila", + "Appearance Settings…": "Ulkoasuasetukset…", + "Apple Photos Imports": "Apple Kuvien tuonnit", + "Application": "Sovellus", + "Apply": "Käytä", + "Apply Color Label Set": "Käytä värimerkintäjoukkoa", + "Apply Filter Preset": "Käytä suodinesiasetusta", + "Apply Metadata Preset": "Käytä metatietoesiasetusta", + "Apply Point Curve Preset": "Käytä pistekäyrän esiasetusta", + "Apply Preset": "Käytä esiasetusta", + "Apply Settings JSON": "Käytä asetus-JSON:ia", + "Apply the local tone mapping stored in the raw (Apple ProRAW), as the camera renders it": "Käytä rawiin tallennettua paikallista sävykartoitusta (Apple ProRAW) sellaisena kuin kamera sen renderöi", + "Apply to All Masks": "Käytä kaikkiin maskeihin", + "Approved": "Hyväksytty", + "Aqua": "Turkoosi", + "Aqua Hue": "Turkoosin sävy", + "Aqua Luminance": "Turkoosin kirkkaus", + "Aqua Saturation": "Turkoosin värikylläisyys", + "Arrange Panel": "Järjestä paneeli", + "ArtCraft Website": "ArtCraftin verkkosivusto", + "ArtCraft — more creative apps": "ArtCraft — lisää luovia sovelluksia", + "As Shot": "Kuvattaessa", + "Ascending": "Nouseva", + "Aspect": "Kuvasuhde", + "Aspect Ratio": "Kuvasuhde", + "Aspect preview": "Kuvasuhteen esikatselu", + "Assisted Culling": "Avustettu valinta", + "Assisted Culling…": "Avustettu valinta…", + "Auto": "Auto", + "Auto Advance": "Automaattinen eteneminen", + "Auto Advance Off": "Automaattinen eteneminen pois", + "Auto Advance On": "Automaattinen eteneminen päällä", + "Auto Advance after rating or flagging": "Automaattinen eteneminen luokituksen tai merkitsemisen jälkeen", + "Auto Advance: move to the next photo after rating or flagging": "Automaattinen eteneminen: siirry seuraavaan kuvaan luokituksen tai merkitsemisen jälkeen", + "Auto Align": "Automaattinen kohdistus", + "Auto B&W Mix": "Automaattinen mustavalkosekoitus", + "Auto Crop": "Automaattinen rajaus", + "Auto Import": "Automaattinen tuonti", + "Auto Import Now": "Tuo automaattisesti nyt", + "Auto Import Settings": "Automaattisen tuonnin asetukset", + "Auto Mask": "Automaattinen maski", + "Auto Select": "Automaattinen valinta", + "Auto Settings": "Automaattiset asetukset", + "Auto Straighten": "Automaattinen suoristus", + "Auto Sync": "Automaattinen synkronointi", + "Auto settings applied": "Automaattiset asetukset käytetty", + "Auto-Stack by Capture Time": "Pinoa automaattisesti kuvausajan mukaan", + "Auto-Stack by Capture Time…": "Pinoa automaattisesti kuvausajan mukaan…", + "Auto-Tag Photos from Tracklog": "Merkitse kuvat automaattisesti reittilokista", + "Auto-Tag from Tracklog": "Merkitse automaattisesti reittilokista", + "Auto-Tag from Tracklog…": "Merkitse automaattisesti reittilokista…", + "Automatic": "Automaattinen", + "Automatic renders the Detail view at the size it is shown, up to the photo's own pixels. Choose a size to cap it: smaller is faster.": "Automaattinen renderöi Tarkastelu-näkymän näytettävässä koossa, enintään kuvan omiin pikseleihin asti. Valitse koko rajoittaaksesi sitä: pienempi on nopeampi.", + "Automatic uses the graphics card where it is faster than the processor: both are timed on this computer the first time a photo is made.": "Automaattinen käyttää näytönohjainta, kun se on prosessoria nopeampi: molemmat ajastetaan tällä tietokoneella, kun kuva muodostetaan ensimmäisen kerran.", + "Automatically Write Changes into XMP": "Kirjoita muutokset automaattisesti XMP:hen", + "Automatically show full screen": "Näytä automaattisesti koko näytöllä", + "Automatically write changes into XMP sidecars": "Kirjoita muutokset automaattisesti XMP-sivutiedostoihin", + "Autumn Gold": "Syyskulta", + "B&W": "M/V", + "B&W Mix": "Mustavalkosekoitus", + "B&W Mixer": "Mustavalkosekoitin", + "Back": "Takaisin", + "Back Up Library…": "Varmuuskopioi kirjasto…", + "Back to Edit": "Takaisin muokkaukseen", + "Back to Edit (E)": "Takaisin muokkaukseen (E)", + "Back to Grid": "Takaisin ruudukkoon", + "Back to this person": "Takaisin tähän henkilöön", + "Backdrop": "Tausta", + "Background": "Tausta", + "Background Tasks": "Taustatehtävät", + "Background colour": "Taustaväri", + "Background image": "Taustakuva", + "Balance": "Tasapaino", + "Basic": "Perus", + "Before": "Ennen", + "Before the last template": "Ennen viimeistä mallipohjaa", + "Before/After (Y)": "Ennen/jälkeen (Y)", + "Before/After Settings": "Ennen/jälkeen-asetukset", + "Before/After Split": "Ennen/jälkeen jaettuna", + "Before/After Split Top/Bottom": "Ennen/jälkeen jaettuna ylä/ala", + "Before/After Top/Bottom": "Ennen/jälkeen ylä/ala", + "Begin Interaction": "Aloita vuorovaikutus", + "Best of Similar Shots": "Paras samankaltaisista otoksista", + "Binary assets added": "Lisätyt binääriresurssit", + "Binary assets removed": "Poistetut binääriresurssit", + "Bit depth": "Bittisyvyys", + "Black & White": "Mustavalkoinen", + "Blacks": "Mustat", + "Bleach Bypass": "Bleach bypass", + "Bleached": "Haalistettu", + "Blending": "Sekoitus", + "Blue": "Sininen", + "Blue Hour Boost": "Sininen tunti -tehostus", + "Blue Hue": "Sinisen sävy", + "Blue Luminance": "Sinisen kirkkaus", + "Blue Primary": "Sinisen pääväri", + "Blue Saturation": "Sinisen värikylläisyys", + "Blue channel": "Sininen kanava", + "Blue label": "Sininen merkintä", + "Blue/Yellow Fringe": "Sini/keltareunus", + "Blurry photos below the score are flagged as rejects.": "Pisteitä heikommat epäterävät kuvat merkitään hylätyiksi.", + "Bottom": "Alareuna", + "Boundary Warp": "Reunan vääntö", + "Bright & Airy": "Kirkas ja ilmava", + "Bring All to Front": "Tuo kaikki eteen", + "Bring the library up to date with this folder and the folders inside it:": "Päivitä kirjasto vastaamaan tätä kansiota ja sen alikansioita:", + "Browse Folder": "Selaa kansiota", + "Browse Folder…": "Selaa kansiota…", + "Browse Profiles": "Selaa profiileja", + "Browse…": "Selaa…", + "Brush": "Sivellin", + "Brush Settings": "Sivellinasetukset", + "Brush Stroke": "Siveltimenveto", + "Build Previews": "Luo esikatselut", + "Build Smart Previews": "Luo älyesikatselut", + "Building previews": "Luodaan esikatseluja", + "Building smart previews": "Luodaan älyesikatseluja", + "Built-in": "Sisäänrakennettu", + "By Date": "Päivämäärän mukaan", + "By day (YYYY/YYYY-MM-DD)": "Päivittäin (VVVV/VVVV-KK-PP)", + "By month (YYYY/YYYY-MM)": "Kuukausittain (VVVV/VVVV-KK)", + "CPU": "Suoritin", + "CPU threads": "Suoritinsäikeet", + "Cache": "Välimuisti", + "Calibration": "Kalibrointi", + "Camera": "Kamera", + "Camera Info": "Kameran tiedot", + "Camera local tone mapping": "Kameran paikallinen sävykartoitus", + "Camera make and model": "Kameran merkki ja malli", + "Cameras and Cards": "Kamerat ja kortit", + "Can't be moved here": "Tänne ei voi siirtää", + "Cancel": "Peruuta", + "Cancel AI Mask Model Download": "Peruuta tekoälymaskimallin lataus", + "Cancel Background Task": "Peruuta taustatehtävä", + "Cancel Denoise": "Peruuta kohinanpoisto", + "Cancel Denoise Model Download": "Peruuta kohinanpoistomallin lataus", + "Cancel Download": "Peruuta lataus", + "Cancel Face Model Download": "Peruuta kasvomallin lataus", + "Cancel Interaction": "Peruuta vuorovaikutus", + "Cancel Pending Photo Action": "Peruuta odottava kuvatoiminto", + "Cancel Preview Build": "Peruuta esikatselun luonti", + "Cancel pending action": "Peruuta odottava toiminto", + "Candidate": "Ehdokas", + "Caption": "Kuvateksti", + "Capture Date": "Kuvauspäivä", + "Capture date and time in your own format (directives below)": "Kuvauspäivä ja -aika omassa muodossasi (ohjausmerkit alla)", + "Capture date as YYYYMMDD": "Kuvauspäivä muodossa VVVVKKPP", + "Captured": "Kuvattu", + "Captured from": "Kuvattu alkaen", + "Captured until": "Kuvattu asti", + "Cast shadow": "Heitetty varjo", + "Catalog Statistics": "Katalogin tilastot", + "Catchlight": "Silmänvalo", + "Center": "Keskellä", + "Change": "Muuta", + "Change Component Mode": "Vaihda komponenttitilaa", + "Characters not allowed in file names (/ \\ : * ? \" < > |) become -; an existing name gets -1, -2….": "Tiedostonimissä kiellettyjä merkkejä (/ \\ : * ? \" < > |) korvataan merkillä -; olemassa oleva nimi saa lopun -1, -2….", + "Charcoal": "Hiili", + "Check All": "Valitse kaikki", + "Check Output Path": "Tarkista tulostepolku", + "Check the files of this type": "Tarkista tämän tyyppiset tiedostot", + "Checking and installing the model…": "Tarkistetaan ja asennetaan mallia…", + "Checking names…": "Tarkistetaan nimiä…", + "Checking raw files": "Tarkistetaan raw-tiedostoja", + "Checking the GPU for faces": "Tarkistetaan GPU:ta kasvoja varten", + "Checking the GPU…": "Tarkistetaan GPU:ta…", + "Checking…": "Tarkistetaan…", + "Choose Another Library…": "Valitse toinen kirjasto…", + "Choose Denoise Model": "Valitse kohinanpoistomalli", + "Choose Edit Settings to Copy": "Valitse kopioitavat muokkausasetukset", + "Choose Edit Settings to Copy…": "Valitse kopioitavat muokkausasetukset…", + "Choose Face Recognition Model": "Valitse kasvojentunnistusmalli", + "Choose Folder…": "Valitse kansio…", + "Choose Layout Image…": "Valitse asettelukuva…", + "Choose Monitor Profile": "Valitse näytön profiili", + "Choose Profile…": "Valitse profiili…", + "Choose a PDF destination after confirming. Print the PDF from your viewer.": "Valitse PDF:n kohde vahvistuksen jälkeen. Tulosta PDF katseluohjelmasta.", + "Choose a group": "Valitse ryhmä", + "Choose a model below (Use) to start.": "Aloita valitsemalla alta malli (Käytä).", + "Choose a photo in the grid or filmstrip": "Valitse kuva ruudukosta tai filminauhasta", + "Choose an album…": "Valitse albumi…", + "Choose at least one setting to include": "Valitse vähintään yksi mukaan otettava asetus", + "Choose…": "Valitse…", + "Cinema Wide": "Elokuvaleveä", + "Cinematic": "Elokuvamainen", + "City": "Kaupunki", + "Clarity": "Selkeys", + "Clean Studio": "Puhdas studio", + "Clear": "Tyhjennä", + "Clear Cache": "Tyhjennä välimuisti", + "Clear Denoise Cache": "Tyhjennä kohinanpoiston välimuisti", + "Clear Filters": "Tyhjennä suodattimet", + "Clear Guides": "Tyhjennä apuviivat", + "Clear History": "Tyhjennä historia", + "Clear Preview Cache": "Tyhjennä esikatselun välimuisti", + "Clear Quick Collection": "Tyhjennä pikakokoelma", + "Clear Recent Libraries": "Tyhjennä viimeisimmät kirjastot", + "Clear Reference": "Tyhjennä vertailukuva", + "Clear all": "Tyhjennä kaikki", + "Clear cache": "Tyhjennä välimuisti", + "Clear form": "Tyhjennä lomake", + "Clear rating": "Poista luokitus", + "Clear rating and advance": "Poista luokitus ja siirry eteenpäin", + "Cleared History": "Historia tyhjennetty", + "Click Zoom Ratio": "Zoomaussuhde napsautuksella", + "Click a cell to move, resize or arrange it": "Napsauta solua siirtääksesi, muuttaaksesi sen kokoa tai järjestääksesi sen", + "Click a shortcut, then press the new keys (Esc cancels).": "Napsauta pikanäppäintä ja paina sitten uusia näppäimiä (Esc peruu).", + "Click a tag to insert it. Examples are for IMG_0042.CR3 taken 14 Jan 2026, 05:58:48.": "Napsauta tunnistetta lisätäksesi sen. Esimerkit ovat tiedostolle IMG_0042.CR3, joka on otettu 14.1.2026 klo 05:58:48.", + "Click a template to apply it; point at one to preview it on the selected photo. Right-click your own to update, rename, export or delete it.": "Napsauta mallipohjaa ottaaksesi sen käyttöön; osoita yhtä nähdäksesi sen esikatselun valitulla kuvalla. Napsauta omaa mallipohjaa hiiren kakkospainikkeella päivittääksesi, nimetäksesi uudelleen, viedäksesi tai poistaaksesi sen.", + "Click photos in the grid to toggle the keyword; Esc stops": "Napsauta ruudukon kuvia vaihtaaksesi avainsanan päälle tai pois; Esc lopettaa", + "Click the object to select it · ⌥-click leaves a part out": "Napsauta kohdetta valitaksesi sen · ⌥-napsautus jättää osan pois", + "Click the photo to pick a colour · ⇧-click adds more": "Napsauta kuvaa poimiaksesi värin · ⇧-napsautus lisää uusia", + "Click the photo to pick a colour; ⇧-click adds more (up to 5)": "Napsauta kuvaa poimiaksesi värin; ⇧-napsautus lisää uusia (enintään 5)", + "Click to clear these filters": "Napsauta tyhjentääksesi nämä suodattimet", + "Click to name this face": "Napsauta nimetäksesi tämä kasvo", + "Click to restore · double-click to rename": "Napsauta palauttaaksesi · kaksoisnapsauta nimetäksesi uudelleen", + "Click to type a value": "Napsauta kirjoittaaksesi arvon", + "Click to type a value, drag to change it": "Napsauta kirjoittaaksesi arvon tai vedä muuttaaksesi sitä", + "Clone": "Kloonaa", + "Close": "Sulje", + "Close Panel": "Sulje paneeli", + "Close Window": "Sulje ikkuna", + "Close all": "Sulje kaikki", + "Close file": "Sulje tiedosto", + "Close panel": "Sulje paneeli", + "Cloudy": "Pilvinen", + "Collapse": "Tiivistä", + "Collapse All Stacks": "Tiivistä kaikki pinot", + "Collapse Stack": "Tiivistä pino", + "Color": "Väri", + "Color Grading": "Väriluokittelu", + "Color Label": "Värimerkintä", + "Color Label Names": "Värimerkintöjen nimet", + "Color Label Sets": "Värimerkintäjoukot", + "Color Mixer": "Värisekoitin", + "Color Noise Reduction": "Värikohinan vähennys", + "Color Overlay": "Väripeittokuva", + "Color Overlay on B&W": "Väripeittokuva mustavalkokuvalla", + "Color Priority": "Värien prioriteetti", + "Color Range": "Väriväli", + "Color label cleared": "Värimerkintä poistettu", + "Color space": "Väriavaruus", + "Color space: Rec. 2020 HLG (HDR AVIF)": "Väriavaruus: Rec. 2020 HLG (HDR AVIF)", + "Color space: Rec. 2020 PQ (HDR AVIF)": "Väriavaruus: Rec. 2020 PQ (HDR AVIF)", + "Color space: Rec. 2020 PQ (HDR JPEG XL)": "Väriavaruus: Rec. 2020 PQ (HDR JPEG XL)", + "Color space: Rec. 2020 PQ, 16-bit (HDR PNG)": "Väriavaruus: Rec. 2020 PQ, 16-bittinen (HDR PNG)", + "Color space: sRGB (AVIF)": "Väriavaruus: sRGB (AVIF)", + "Color wheel": "Värikiekko", + "Colors": "Värit", + "Colour": "Väri", + "Colour only": "Vain väri", + "Colour wash": "Värivaippa", + "Combine files…": "Yhdistä tiedostot…", + "Combine with the existing person": "Yhdistä olemassa olevaan henkilöön", + "Command Journal": "Komentoloki", + "Comments panel": "Kommenttipaneeli", + "Commits": "Commitit", + "Company": "Yritys", + "Compare": "Vertaa", + "Compare (Shift+C)": "Vertaa (Shift+C)", + "Compare Before and After": "Vertaa ennen ja jälkeen", + "Compare needs at least two photos": "Vertailu vaatii vähintään kaksi kuvaa", + "Component options": "Komponentin asetukset", + "Compression": "Pakkaus", + "Concrete Cool": "Betonin viileä", + "Confirm before deleting": "Vahvista ennen poistamista", + "Confirm before moving photos to Recently Deleted": "Vahvista ennen kuvien siirtämistä Äskettäin poistettuihin", + "Confirm before moving photos to another folder on disk": "Vahvista ennen kuvien siirtämistä toiseen kansioon levyllä", + "Constrain Crop": "Rajoita rajaus", + "Contact Sheet PDF": "Kontaktivedos-PDF", + "Contact Sheet PDF…": "Kontaktivedos-PDF…", + "Container": "Säiliö", + "Content-Aware": "Sisältötietoinen", + "Continue": "Jatka", + "Continue Without Saving": "Jatka tallentamatta", + "Contrast": "Kontrasti", + "Contributors": "Tekijät", + "Convert to DNG": "Muunna DNG:ksi", + "Cool Fade": "Viileä haalistus", + "Cool Morning": "Viileä aamu", + "Copy": "Kopioi", + "Copy After's Settings to Before": "Kopioi Jälkeen-asetukset Ennen-puolelle", + "Copy Before to After": "Kopioi Ennen Jälkeen-puolelle", + "Copy Before's Settings to After": "Kopioi Ennen-asetukset Jälkeen-puolelle", + "Copy Edit Settings": "Kopioi muokkausasetukset", + "Copy History Step Settings to Before": "Kopioi historiavaiheen asetukset Ennen-puolelle", + "Copy Metadata": "Kopioi metatiedot", + "Copy Name": "Kopioi nimi", + "Copy Settings…": "Kopioi asetukset…", + "Copy as DNG": "Kopioi DNG:nä", + "Copy into the library (else use the files where they are)": "Kopioi kirjastoon (muuten tiedostoja käytetään niiden nykyisessä sijainnissa)", + "Copy pages": "Kopioi sivut", + "Copy the files (into the library's Originals/, or a folder you choose)": "Kopioi tiedostot (kirjaston Originals/-kansioon tai valitsemaasi kansioon)", + "Copy to": "Kopioi kohteeseen", + "Copy to Clipboard": "Kopioi leikepöydälle", + "Copy: the files are copied to the folder below and the library uses the copies; the originals are left as they are.": "Kopioi: tiedostot kopioidaan alla olevaan kansioon ja kirjasto käyttää kopioita; alkuperäiset jäävät ennalleen.", + "Copyright": "Tekijänoikeus", + "Copyright Info URL": "Tekijänoikeustietojen URL", + "Copyright Status": "Tekijänoikeuden tila", + "Copyrighted": "Tekijänoikeuden alainen", + "Country": "Maa", + "Create": "Luo", + "Create Album": "Luo albumi", + "Create Album…": "Luo albumi…", + "Create Folder": "Luo kansio", + "Create Folder…": "Luo kansio…", + "Create Keyword": "Luo avainsana", + "Create Keyword Tag": "Luo avainsanatunniste", + "Create New Mask": "Luo uusi maski", + "Create PDF from clipboard": "Luo PDF leikepöydältä", + "Create PDF from file…": "Luo PDF tiedostosta…", + "Create PDF from images…": "Luo PDF kuvista…", + "Create Preset": "Luo esiasetus", + "Create Preset…": "Luo esiasetus…", + "Create Proof Copy": "Luo vedoskopio", + "Create Smart Album": "Luo älyalbumi", + "Create Smart Album from Filter…": "Luo älyalbumi suodattimesta…", + "Create Smart Album…": "Luo älyalbumi…", + "Create Stack": "Luo pino", + "Create Version": "Luo versio", + "Create Version from Step": "Luo versio vaiheesta", + "Create Virtual Copy": "Luo virtuaalikopio", + "Creator": "Tekijä", + "Creator metadata": "Tekijän metatiedot", + "Crisp Landscape": "Terävä maisema", + "Crisp Vista": "Terävä näkymä", + "Crop": "Rajaus", + "Crop & Rotate": "Rajaa ja kierrä", + "Crop & Rotate (C)": "Rajaa ja kierrä (C)", + "Crop Aspect": "Rajauksen kuvasuhde", + "Crop, Rotate, Geometry": "Rajaus, kierto, geometria", + "Cropped": "Rajattu", + "Cross Process": "Ristiinkäsittely", + "Culling": "Karsinta", + "Curve": "Käyrä", + "Curve channel": "Käyrän kanava", + "Custom": "Mukautettu", + "Custom AF Area": "Mukautettu tarkennusalue", + "Custom template…": "Oma mallipohja…", + "Custom…": "Mukautettu…", + "Cut": "Leikkaa", + "Cut pages": "Leikkaa sivut", + "Cycle Crop Overlay": "Vaihda rajauksen peittokuvaa", + "Cycle Crop Overlay Orientation": "Vaihda rajauksen peittokuvan suuntaa", + "Cycle Info Overlay": "Vaihda tietojen peittokuvaa", + "Cycle Mask Overlay Color": "Vaihda maskin peittokuvan väriä", + "Cycle Mask Overlay Mode": "Vaihda maskin peittokuvan tilaa", + "Cycle Tool Overlay": "Vaihda työkalun peittokuvaa", + "Cylindrical": "Lieriömäinen", + "Dark & Moody": "Tumma ja synkkä", + "Dark Mode": "Tumma tila", + "Dark Theme": "Tumma teema", + "Darken": "Tummenna", + "Darks": "Tummat", + "Date": "Päivämäärä", + "Date Groups": "Päivämääräryhmät", + "Day": "Päivä", + "Daylight": "Päivänvalo", + "Decrease Brush Feather": "Pienennä siveltimen pehmeyttä", + "Decrease Brush Size": "Pienennä siveltimen kokoa", + "Decrease Grid Thumbnail Size": "Pienennä ruudukon pikkukuvien kokoa", + "Decrease Rating": "Pienennä luokitusta", + "Deep Sky": "Syvä taivas", + "Defringe": "Värivirheen korjaus", + "Deghost Amount": "Haamukuvien poiston määrä", + "Dehaze": "Sumunpoisto", + "Delete": "Poista", + "Delete (⌫)": "Poista (⌫)", + "Delete Album": "Poista albumi", + "Delete All Masks": "Poista kaikki maskit", + "Delete Cell": "Poista solu", + "Delete Color Label Set": "Poista värimerkintäjoukko", + "Delete Component": "Poista komponentti", + "Delete Export Preset": "Poista vientiesiasetus", + "Delete Filter Preset": "Poista suodinesiasetus", + "Delete Imported Profile": "Poista tuotu profiili", + "Delete Keyword": "Poista avainsana", + "Delete Keyword Set": "Poista avainsanajoukko", + "Delete Keyword…": "Poista avainsana…", + "Delete Mask": "Poista maski", + "Delete Metadata Preset": "Poista metatietoesiasetus", + "Delete Permanently": "Poista pysyvästi", + "Delete Photo": "Poista kuva", + "Delete Photos": "Poista kuvat", + "Delete Point Color": "Poista pistevärin", + "Delete Point Color Sample": "Poista pistevärin näyte", + "Delete Point Curve Preset": "Poista pistekäyrän esiasetus", + "Delete Preset": "Poista esiasetus", + "Delete Red Eye": "Poista punasilmäisyys", + "Delete Red Eye Correction": "Poista punasilmäisyyden korjaus", + "Delete Spot": "Poista täplä", + "Delete Version": "Poista versio", + "Delete all": "Poista kaikki", + "Delete all spots": "Poista kaikki täplät", + "Delete them": "Poista ne", + "Delete…": "Poista…", + "Denoise Model Downloads": "Kohinanpoistomallien lataukset", + "Denoise Models": "Kohinanpoistomallit", + "Denoise Photos": "Poista kuvien kohinaa", + "Denoise Pump": "Kohinanpoiston pumppu", + "Denoise Settings": "Kohinanpoiston asetukset", + "Denoise Status": "Kohinanpoiston tila", + "Denoise all photos with an Amount": "Poista kohinaa kaikista kuvista Määrä-arvolla", + "Density": "Tiheys", + "Depth Range": "Syvyysalue", + "Descending": "Laskeva", + "Describe": "Kuvaile", + "Describe what to keep": "Kuvaile, mitä säilytetään", + "Describe what to leave out": "Kuvaile, mitä jätetään pois", + "Describe what to select": "Kuvaile, mitä valitaan", + "Describe…": "Kuvaile…", + "Description": "Kuvaus", + "Deselect": "Poista valinta", + "Deselect All": "Poista kaikkien valinta", + "Desert Heat": "Aavikon kuumuus", + "Desert Warmth": "Aavikon lämpö", + "Desktop": "Työpöytä", + "Destination library": "Kohdekirjasto", + "Detail": "Tarkastelu", + "Detail (D)": "Tarkastelu (D)", + "Details": "Tiedot", + "Detect Faces": "Tunnista kasvot", + "Detect Faces (Photo menu) needs it: a small one-time download.": "Kasvojen tunnistus (Kuva-valikko) tarvitsee sen: pieni kertaluonteinen lataus.", + "Detection": "Havaitseminen", + "Develop": "Kehitys", + "Diagonal": "Vinoittain", + "Discard Preview Cache": "Hylkää esikatselun välimuisti", + "Discarding smart previews": "Hylätään älyesikatseluja", + "Display": "Näyttö", + "Display P3": "Display P3", + "Display Profile": "Näyttöprofiili", + "Display name": "Näyttönimi", + "Display profile not used": "Näyttöprofiilia ei käytetä", + "Display theme": "Näytön teema", + "Distortion": "Vääristymä", + "Document properties…": "Asiakirjan ominaisuudet…", + "Don't ask again": "Älä kysy uudelleen", + "Don't enlarge": "Älä suurenna", + "Done": "Valmis", + "Download": "Lataa", + "Download AI Mask Model": "Lataa tekoälymaskimalli", + "Download Denoise Model": "Lataa kohinanpoistomalli", + "Download Face Model": "Lataa kasvomalli", + "Download Place Names (GeoNames)": "Lataa paikannimet (GeoNames)", + "Download the SAM 3 Model?": "Ladataanko SAM 3 -malli?", + "Downloaded and checked. Installing…": "Ladattu ja tarkistettu. Asennetaan…", + "Downloading model": "Ladataan mallia", + "Downloading place names": "Ladataan paikannimiä", + "Downloads": "Lataukset", + "Drag Crop Handle": "Vedä rajauskahvaa", + "Drag along the horizon; double-click for Auto": "Vedä horisontin suuntaisesti; kaksoisnapsauta Automaattisesta", + "Drag over an eye on the photo; the pupil inside is found automatically.": "Vedä kuvassa silmän päälle; sen sisällä oleva pupilli löytyy automaattisesti.", + "Drag to set hue and saturation. Hold Shift to keep the hue, Cmd/Ctrl to keep the saturation, Alt/Option to fine-adjust. Double-click to reset.": "Vedä asettaaksesi sävyn ja värikylläisyyden. Pidä Shift-näppäintä pohjassa säilyttääksesi sävyn, Cmd/Ctrl säilyttääksesi värikylläisyyden, Alt/Option hienosäätöön. Kaksoisnapsauta nollataksesi.", + "Draw Guides": "Piirrä apuviivoja", + "Drop here for the top level": "Pudota tähän ylimmälle tasolle", + "Duplicate": "Monista", + "Duplicate Component": "Monista komponentti", + "Duplicate Mask": "Monista maski", + "Duplicate and Invert Mask": "Monista ja käännä maski", + "Duration": "Kesto", + "Each / starts a folder level; tags are filled in per photo (a level with missing metadata is \"unknown\").": "Jokainen / aloittaa kansiotason; tunnisteet täytetään kuvakohtaisesti (taso, jolta metatiedot puuttuvat, on ”tuntematon”).", + "Each photo as large as it fits, on black, with a short crossfade. Nothing drawn over it.": "Jokainen kuva mahdollisimman suurena mustalla taustalla, lyhyellä ristihäivytyksellä. Mitään ei piirretä sen päälle.", + "Edge": "Reuna", + "Edge to Edge": "Reunasta reunaan", + "Edit": "Muokkaa", + "Edit (E)": "Muokkaa (E)", + "Edit Capture Time": "Muokkaa kuvausaikaa", + "Edit Capture Time…": "Muokkaa kuvausaikaa…", + "Edit Color Label Names": "Muokkaa värimerkintöjen nimiä", + "Edit Color Label Names…": "Muokkaa värimerkintöjen nimiä…", + "Edit Copy for External Editor": "Muokkaa kopiota ulkoisessa muokkausohjelmassa", + "Edit Date": "Muokkaa päivämäärää", + "Edit In": "Muokkaa ohjelmassa", + "Edit Info": "Muokkaa tietoja", + "Edit Keyword": "Muokkaa avainsanaa", + "Edit Keyword Set": "Muokkaa avainsanajoukkoa", + "Edit Keyword Tag": "Muokkaa avainsanatunnistetta", + "Edit Keyword Tag…": "Muokkaa avainsanatunnistetta…", + "Edit Label Names": "Muokkaa merkintöjen nimiä", + "Edit Label Names…": "Muokkaa merkintöjen nimiä…", + "Edit Mask": "Muokkaa maskia", + "Edit Mask Component": "Muokkaa maskin komponenttia", + "Edit Sections": "Muokkaa osioita", + "Edit Set…": "Muokkaa joukkoa…", + "Edit Smart Album": "Muokkaa älyalbumia", + "Edit Smart Album…": "Muokkaa älyalbumia…", + "Edit Spot": "Muokkaa täplää", + "Edit in External Editor": "Muokkaa ulkoisessa muokkausohjelmassa", + "Edit in HDR: highlights above SDR white, for HDR exports and displays": "Muokkaa HDR:nä: huippuvalot SDR-valkoisen yläpuolella HDR-vienteihin ja -näyttöihin", + "Edit in Other Editor": "Muokkaa toisessa muokkausohjelmassa", + "Edit in Other Editor (⌥⌘E) opens the copy in this application (an app name on macOS, a program path elsewhere).": "Muokkaa toisessa muokkausohjelmassa (⌥⌘E) avaa kopion tässä sovelluksessa (macOS:ssä sovelluksen nimi, muualla ohjelman polku).", + "Edit in PhotoCraft": "Muokkaa PhotoCraftissa", + "Edit settings copied": "Muokkausasetukset kopioitu", + "Edited": "Muokattu", + "Edited or not": "Muokattu vai ei", + "Effect": "Tehoste", + "Effects": "Tehosteet", + "Empty Recently Deleted": "Tyhjennä Äskettäin poistetut", + "Enable Lens Corrections": "Ota objektiivikorjaukset käyttöön", + "Enable Profile Corrections": "Ota profiilikorjaukset käyttöön", + "End": "Loppu", + "End Interaction": "Lopeta vuorovaikutus", + "End Slideshow": "Lopeta diaesitys", + "Ending": "Lopetus", + "Ending screen": "Lopetusnäyttö", + "English": "English", + "Enter Full Screen": "Siirry koko näytön tilaan", + "Enter a date as YYYY-MM-DD HH:MM:SS": "Anna päivämäärä muodossa VVVV-KK-PP TT:MM:SS", + "Enter to confirm, Esc to cancel": "Vahvista Enterillä, peruuta Escillä", + "Erase": "Pyyhi", + "Evaluate Face Recognition": "Arvioi kasvojentunnistusta", + "Every EXIF, GPS and XMP field in the file": "Jokainen tiedoston EXIF-, GPS- ja XMP-kenttä", + "Every photo cropped to fill the whole screen, with slow crossfades.": "Jokainen kuva rajattuna täyttämään koko näytön, hitailla ristihäivytyksillä.", + "Existing previews": "Olemassa olevat esikatselut", + "Exit": "Poistu", + "Expand": "Laajenna", + "Expand All Stacks": "Laajenna kaikki pinot", + "Expand Stack": "Laajenna pino", + "Expand/Collapse Stack": "Laajenna/tiivistä pino", + "Expanded Flexible Spot": "Laajennettu joustava täplä", + "Export": "Vie", + "Export Album with Preset": "Vie albumi esiasetuksella", + "Export Album…": "Vie albumi…", + "Export As…": "Vie nimellä…", + "Export Contact Sheet PDF": "Vie kontaktivedos-PDF", + "Export Containing Keywords": "Vie avainsanat sisältäen", + "Export Effect Presets": "Vie tehosteesiasetukset", + "Export Effect Presets…": "Vie tehosteesiasetukset…", + "Export Group…": "Vie ryhmä…", + "Export JPEG…": "Vie JPEG…", + "Export Keywords": "Vie avainsanat", + "Export Keywords…": "Vie avainsanat…", + "Export Now": "Vie nyt", + "Export PDF…": "Vie PDF…", + "Export Point Curve Presets": "Vie pistekäyrien esiasetukset", + "Export Point Curve Presets…": "Vie pistekäyrien esiasetukset…", + "Export Presets": "Vie esiasetukset", + "Export Presets…": "Vie esiasetukset…", + "Export Slideshow": "Vie diaesitys", + "Export Slideshow Template": "Vie diaesityksen mallipohja", + "Export Slideshow: folder for the JPEG files": "Vie diaesitys: kansio JPEG-tiedostoille", + "Export Slideshow…": "Vie diaesitys…", + "Export Synonyms": "Vie synonyymit", + "Export User Presets…": "Vie käyttäjän esiasetukset…", + "Export Video…": "Vie video…", + "Export stopped unexpectedly": "Vienti pysähtyi odottamatta", + "Export to": "Vie kohteeseen", + "Export with Preset": "Vie esiasetuksella", + "Export with Previous": "Vie edellisillä asetuksilla", + "Exporting": "Viedään", + "Exporting contact sheet": "Viedään kontaktivedosta", + "Exporting slideshow": "Viedään diaesitystä", + "Export…": "Vie…", + "Exposure": "Valotus", + "Exposure (shutter · aperture · ISO)": "Valotus (suljinaika · aukko · ISO)", + "Extended Description": "Laajennettu kuvaus", + "External Editing": "Ulkoinen muokkaus", + "External Editor": "Ulkoinen muokkausohjelma", + "Face Boxes": "Kasvorajat", + "Face Model Downloads": "Kasvomallien lataukset", + "Face Models": "Kasvomallit", + "Face Recognition On/Off": "Kasvojentunnistus päälle/pois", + "Face detector": "Kasvojentunnistin", + "Face models (ONNX)": "Kasvomallit (ONNX)", + "Face names written to XMP by Lightroom and other apps show up here.": "Lightroomin ja muiden sovellusten XMP:hen kirjoittamat kasvojen nimet näkyvät täällä.", + "Face recognition": "Kasvojentunnistus", + "Face tracking": "Kasvojen seuranta", + "Faces": "Kasvot", + "Faces of a Person": "Henkilön kasvot", + "Fade": "Häivytys", + "Fade duration": "Häivytyksen kesto", + "Faded Matte": "Haalistettu matta", + "Faded Slide": "Haalistettu dia", + "Faded Urban": "Haalistettu urbaani", + "Failed": "Epäonnistui", + "Failed its last test": "Viimeisin testi epäonnistui", + "Favorite": "Suosikki", + "Favorite Preset": "Suosikkiesiasetus", + "Favorite Profile": "Suosikkiprofiili", + "Favorites": "Suosikit", + "Feather": "Häivytys", + "File": "Tiedosto", + "File & date": "Tiedosto ja päivä", + "File Extension": "Tiedostopääte", + "File Format": "Tiedostomuoto", + "File Name": "Tiedostonimi", + "File Path": "Tiedostopolku", + "File Size": "Tiedostokoko", + "File Type": "Tiedostotyyppi", + "File name": "Tiedostonimi", + "File types:": "Tiedostotyypit:", + "Filename": "Tiedostonimi", + "Filename captions": "Tiedostonimet kuvateksteinä", + "Files with the same content as another file in this import: only the first is imported.": "Tiedostot, joiden sisältö on sama kuin toisella tämän tuonnin tiedostolla: vain ensimmäinen tuodaan.", + "Fill": "Täyttö", + "Fill Edges": "Täytä reunat", + "Fill Location": "Täytä sijainti", + "Fill Location from GPS": "Täytä sijainti GPS:stä", + "Fill empty City, State and Country from GPS (offline GeoNames place names)": "Täytä tyhjät Kaupunki, Osavaltio ja Maa GPS:stä (offline-paikannimet GeoNamesista)", + "Film": "Filmi", + "Filmstrip": "Filminauha", + "Filmstrip (/)": "Filminauha (/)", + "Filter": "Suodatin", + "Filter Bar": "Suodatinpalkki", + "Filter Keywords": "Suodata avainsanoja", + "Filter Presets": "Suodinesiasetukset", + "Filter bar": "Suodatinpalkki", + "Filter fields": "Suodatinkentät", + "Filters": "Suodattimet", + "Find Blemishes": "Etsi virheet", + "Find Dust Spots": "Etsi pölyhiukkaset", + "Find Missing Photos": "Etsi puuttuvat kuvat", + "Find Missing Photos…": "Etsi puuttuvat kuvat…", + "Find Similar Photos": "Etsi samankaltaisia kuvia", + "Find photos added to or missing from this folder on disk, and XMP sidecars changed by other apps": "Etsi tähän kansioon levyllä lisätyt tai siitä puuttuvat kuvat sekä muiden sovellusten muuttamat XMP-sivutiedostot", + "Find tools and commands…": "Etsi työkaluja ja komentoja…", + "Finding faces": "Etsitään kasvoja", + "Find…": "Etsi…", + "First": "Ensimmäinen", + "First commit": "Ensimmäinen commit", + "Fit": "Sovita", + "Fit (F)": "Sovita (F)", + "Fit on Screen": "Sovita näytölle", + "Fit to width": "Sovita leveyteen", + "Fit visible": "Sovita näkyvään", + "Five stars": "Viisi tähteä", + "Fix the marked rules to save this album.": "Korjaa merkityt säännöt tallentaaksesi tämän albumin.", + "Fixed keys": "Kiinteät näppäimet", + "Flag": "Lippu", + "Flag as Pick": "Merkitse valituksi", + "Flag as Reject": "Merkitse hylätyksi", + "Flagged as Pick": "Merkitty valituksi", + "Flagged as Reject": "Merkitty hylätyksi", + "Flash": "Salama", + "Flexible Spot": "Joustava täplä", + "Flip H": "Käännä vaaka.", + "Flip Horizontal": "Käännä vaakasuunnassa", + "Flip Overlay (⇧O)": "Käännä peittokuva (⇧O)", + "Flip V": "Käännä pysty.", + "Flip Vertical": "Käännä pystysuunnassa", + "Float panel": "Irrota paneeli", + "Flow": "Virtaus", + "Fluorescent": "Loisteputki", + "Focal Length": "Polttoväli", + "Focus": "Tarkennus", + "Focus (assisted culling)": "Tarkennus (avustettu valinta)", + "Focus point": "Tarkennuspiste", + "Folder": "Kansio", + "Folder name (renamed on disk; its photos follow)": "Kansion nimi (nimetään uudelleen levyllä; sen kuvat seuraavat mukana)", + "Folders": "Kansiot", + "Folders and {date} use the capture time; a photo without one uses today's date.": "Kansiot ja {date} käyttävät kuvausaikaa; kuva, jolla sitä ei ole, käyttää tämän päivän päivämäärää.", + "Food": "Ruoka", + "Forget Unchanged Local Photos": "Unohda muuttumattomat paikalliset kuvat", + "Forget unchanged photos": "Unohda muuttumattomat kuvat", + "Form fields panel": "Lomakekenttäpaneeli", + "Format": "Muoto", + "Forward": "Eteenpäin", + "Found automatically": "Löytyi automaattisesti", + "Fr": "Pe", + "Frame rate": "Kuvataajuus", + "Frame time": "Kuva-aika", + "Frame update": "Kuvan päivitys", + "Free": "Vapaa", + "Fresh & Bright": "Raikas ja kirkas", + "Friday": "perjantai", + "Full": "Täysi", + "Full Screen Preview": "Koko näytön esikatselu", + "Full screen mode": "Koko näytön tila", + "Full size": "Täysi koko", + "GPS Track Log": "GPS-reittiloki", + "GPU Rendering": "GPU-renderöinti", + "Gallery Wall": "Galleriaseinä", + "General": "Yleiset", + "Generated demo photo": "Luotu esittelykuva", + "Geometry": "Geometria", + "Get Develop Settings": "Hae kehitysasetukset", + "Global Hue": "Yleinen sävy", + "Global Luminance": "Yleinen kirkkaus", + "Global Saturation": "Yleinen värikylläisyys", + "Glossy": "Kiiltävä", + "Go back to listing them by name": "Palaa listaamaan ne nimen mukaan", + "Go to History Step": "Siirry historiavaiheeseen", + "Golden": "Kultainen", + "Golden Glow": "Kultainen hehku", + "Golden Hour": "Kultainen hetki", + "Grab bag": "Sekalaista", + "Grain": "Rakeisuus", + "Graphic": "Grafiikka", + "Graphics card": "Näytönohjain", + "Green": "Vihreä", + "Green Amount": "Vihreän määrä", + "Green Hue": "Vihreän sävy", + "Green Hue High": "Vihreän sävy ylä", + "Green Hue Low": "Vihreän sävy ala", + "Green Luminance": "Vihreän kirkkaus", + "Green Primary": "Vihreän pääväri", + "Green Saturation": "Vihreän värikylläisyys", + "Green channel": "Vihreä kanava", + "Green label": "Vihreä merkintä", + "Grid": "Ruudukko", + "Grid Info": "Ruudukon tiedot", + "Grid: add the next photo to the selection": "Ruudukko: lisää seuraava kuva valintaan", + "Grid: add the previous photo to the selection": "Ruudukko: lisää edellinen kuva valintaan", + "Grid: first photo of the view": "Ruudukko: näkymän ensimmäinen kuva", + "Grid: last photo of the view": "Ruudukko: näkymän viimeinen kuva", + "Gritty Street": "Rosoinen katu", + "Group": "Ryhmä", + "Group (optional)": "Ryhmä (valinnainen)", + "Group by Date: Automatic": "Ryhmittely päivämäärän mukaan: automaattinen", + "Group by Day": "Ryhmittele päivän mukaan", + "Group by Month": "Ryhmittele kuukauden mukaan", + "Group by Year": "Ryhmittele vuoden mukaan", + "Group by date": "Ryhmittele päivämäärän mukaan", + "Group into Stack": "Ryhmittele pinoksi", + "Group name": "Ryhmän nimi", + "Grouped by parent": "Ryhmitelty ylätason mukaan", + "Grouped: keywords inside the same keyword share a line naming it, and long lists and the suggestions are shortened.": "Ryhmitelty: saman avainsanan sisällä olevat avainsanat jakavat sen nimeävän rivin, ja pitkät luettelot ja ehdotukset lyhennetään.", + "Guided": "Ohjattu", + "Guided Upright": "Ohjattu Upright", + "Guided Upright Guides": "Ohjatun Uprightin apuviivat", + "HDR": "HDR", + "HDR Headroom": "HDR-varakorkeus", + "HDR Merge": "HDR-yhdistäminen", + "HDR Merge Preview": "HDR-yhdistämisen esikatselu", + "HDR Panorama Merge": "HDR-panoraaman yhdistäminen", + "HDR Panorama Merge Preview": "HDR-panoraaman yhdistämisen esikatselu", + "HDR Panorama with Last Settings": "HDR-panoraama viimeisillä asetuksilla", + "HDR Panoramas": "HDR-panoraamat", + "HDR Panorama…": "HDR-panoraama…", + "HDR TIFF needs 32-bit float.": "HDR-TIFF vaatii 32-bittisen liukuluvun.", + "HDR for Each Bracket Set": "HDR jokaiselle haarukointisarjalle", + "HDR output": "HDR-tuloste", + "HDR panorama": "HDR-panoraama", + "HDR with Last Settings": "HDR viimeisillä asetuksilla", + "HDR…": "HDR…", + "Has Edits": "On muokkauksia", + "Has GPS": "On GPS", + "Heal": "Paranna", + "Heal the small, soft dark spots sensor dust leaves on smooth areas": "Paranna pienet, pehmeät tummat täplät, joita anturin pöly jättää tasaisille alueille", + "Height": "Korkeus", + "Height (px)": "Korkeus (px)", + "Help": "Ohje", + "Hide LightCraft": "Piilota LightCraft", + "Hide Mask": "Piilota maski", + "Hide Others": "Piilota muut", + "Hide This Section": "Piilota tämä osio", + "Hides this shortcut only; the folder and its photos stay as they are": "Piilottaa vain tämän pikakuvakkeen; kansio ja sen kuvat säilyvät ennallaan", + "High": "Korkea", + "High Contrast B&W": "Korkeakontrastinen M/V", + "Highlight": "Huippuvalo", + "Highlighted: sliders this mask changes. Sliders left out stay as they are when the preset is applied.": "Korostetut: liukusäätimet, joita tämä maski muuttaa. Pois jätetyt liukusäätimet pysyvät ennallaan, kun esiasetus otetaan käyttöön.", + "Highlights": "Huippuvalot", + "Highlights Hue": "Huippuvalojen sävy", + "Highlights Luminance": "Huippuvalojen kirkkaus", + "Highlights Saturation": "Huippuvalojen värikylläisyys", + "Highlights split": "Huippuvalojen jako", + "Histogram": "Histogrammi", + "History": "Historia", + "History & Activity (Y)": "Historia ja toiminta (Y)", + "Hold View Until Refreshed": "Pidä näkymä, kunnes se päivitetään", + "Home": "Kotikansio", + "Horizontal": "Vaaka", + "Horizontal inset (% of short edge)": "Vaakasuuntainen sisennys (% lyhyestä sivusta)", + "Horizontal text": "Vaakasuuntainen teksti", + "Hours": "Tunnit", + "How to install the model": "Mallin asentaminen", + "Hue": "Sävy", + "Hue Range": "Sävyalue", + "Human Eye Tracking": "Ihmissilmien seuranta", + "I have read these terms and accept them for my own use": "Olen lukenut nämä ehdot ja hyväksyn ne omaan käyttööni", + "ICC Profiles": "ICC-profiilit", + "ISO Speed": "ISO-herkkyys", + "Identity plate": "Tunnuslaatta", + "If file exists": "Jos tiedosto on olemassa", + "Image": "Kuva", + "Image on Black": "Kuva mustalla", + "Image on White": "Kuva valkoisella", + "Import": "Tuo", + "Import Date": "Tuontipäivä", + "Import Keywords": "Tuo avainsanat", + "Import Keywords…": "Tuo avainsanat…", + "Import Lightroom Catalog": "Tuo Lightroom-katalogi", + "Import Lightroom Catalog…": "Tuo Lightroom-katalogi…", + "Import Photos": "Tuo kuvia", + "Import Photos…": "Tuo kuvia…", + "Import Point Curve Presets": "Tuo pistekäyrien esiasetukset", + "Import Point Curve Presets…": "Tuo pistekäyrien esiasetukset…", + "Import Presets": "Tuo esiasetukset", + "Import Presets…": "Tuo esiasetukset…", + "Import Profiles": "Tuo profiilit", + "Import Profiles & Presets…": "Tuo profiilit ja esiasetukset…", + "Import Slideshow Templates": "Tuo diaesitysmallipohjat", + "Import as new": "Tuo uutena", + "Import from Device": "Tuo laitteelta", + "Import from Folder…": "Tuo kansiosta…", + "Import new photos": "Tuo uudet kuvat", + "Import photos to get started": "Aloita tuomalla kuvia", + "Import photos with File → Import Photos… (Cmd+Shift+I), or drop them here": "Tuo kuvia valitsemalla Tiedosto → Tuo kuvia… (Cmd+Shift+I) tai pudota ne tähän", + "Imported": "Tuotu", + "Imported Photos": "Tuodut kuvat", + "Importing": "Tuodaan", + "Importing Lightroom Catalog": "Tuodaan Lightroom-katalogia", + "Importing scans the source for photos; it doesn't add the folder to Local (use Local → Browse Folder… to work in a folder without importing).": "Tuonti skannaa lähteestä kuvat; se ei lisää kansiota Paikalliseen (käytä Paikallinen → Selaa kansiota… työskennelläksesi kansiossa tuomatta).", + "Import…": "Tuo…", + "In Color": "Värillinen", + "In Photo Grid and Square Grid: Flag as Pick and advance": "Kuvaruudukossa ja neliöruudukossa: merkitse valituksi ja siirry eteenpäin", + "In Photo Grid and Square Grid: expand or collapse the stack": "Kuvaruudukossa ja neliöruudukossa: laajenna tai tiivistä pino", + "In Recently Deleted": "Äskettäin poistetuissa", + "In Use": "Käytössä", + "In a Stack": "Pinossa", + "In library": "Kirjastossa", + "In memory — nothing is saved": "Muistissa — mitään ei tallenneta", + "In use": "Käytössä", + "In-memory session: these settings last until LightCraft quits.": "Muistissa oleva istunto: nämä asetukset säilyvät, kunnes LightCraft suljetaan.", + "Include Amount": "Sisällytä määrä", + "Include brush size, feather and flow": "Sisällytä siveltimen koko, häivytys ja virtaus", + "Include on Export": "Sisällytä vientiin", + "Include selected photos": "Sisällytä valitut kuvat", + "Include subfolders": "Sisällytä alikansiot", + "Increase Brush Feather": "Suurenna siveltimen pehmeyttä", + "Increase Brush Size": "Suurenna siveltimen kokoa", + "Increase Grid Thumbnail Size": "Suurenna ruudukon pikkukuvien kokoa", + "Increase Rating": "Suurenna luokitusta", + "Index Faces": "Indeksoi kasvot", + "Index Faces in the Background": "Indeksoi kasvot taustalla", + "Info": "Tiedot", + "Info (I)": "Tiedot (I)", + "Info Overlay Off": "Tietojen peittokuva pois", + "Info Overlay: Exposure": "Tietojen peittokuva: valotus", + "Info Overlay: File": "Tietojen peittokuva: tiedosto", + "Info overlay": "Tietojen peittokuva", + "Insert at the cursor": "Lisää kohdistimen kohtaan", + "Inspect Denoise Model": "Tarkastele kohinanpoistomallia", + "Inspect Face Model File": "Tarkastele kasvomallitiedostoa", + "Inspect Lightroom Catalog": "Tarkastele Lightroom-katalogia", + "Inspect Photo": "Tarkastele kuvaa", + "Inspecting Lightroom Catalog": "Tarkastellaan Lightroom-katalogia", + "Install Denoise Model": "Asenna kohinanpoistomalli", + "Install Face Model": "Asenna kasvomalli", + "Install a denoise model to enable AI Denoise on this photo": "Asenna kohinanpoistomalli ottaaksesi tekoälykohinanpoiston käyttöön tällä kuvalla", + "Install from file…": "Asenna tiedostosta…", + "Install the SAM 3 Model": "Asenna SAM 3 -malli", + "Install your own ONNX model with denoise-model.json beside it. This build offers no model downloads.": "Asenna oma ONNX-mallisi, jonka vieressä on denoise-model.json. Tämä versio ei tarjoa mallilatauksia.", + "Instant ’70s": "Välitön 70-luku", + "Intent:": "Tarkoitus:", + "Interface": "Käyttöliittymä", + "Interface language": "Käyttöliittymän kieli", + "Intersect": "Leikkaus", + "Intersect with": "Leikkaa kanssa", + "Into one folder": "Yhteen kansioon", + "Intro": "Alku", + "Intro screen": "Aloitusnäyttö", + "Invert": "Käännä", + "Invert Component": "Käännä komponentti", + "Invert Mask": "Käännä maski", + "It tests this album, so testing it back would loop": "Se testaa tätä albumia, joten sen testaaminen takaisin muodostaisi silmukan", + "Its denoised picture is not made yet, and pictures are not made on their own (Settings, AI Denoise).": "Sen kohinanpoistettua kuvaa ei ole vielä tehty, eikä kuvia tehdä itsestään (Asetukset, Tekoälykohinanpoisto).", + "JPEG (Large)": "JPEG (suuri)", + "JPEG (Small)": "JPEG (pieni)", + "Join the ArtCraft Discord": "Liity ArtCraftin Discordiin", + "Join the ArtCraft Discord…": "Liity ArtCraftin Discordiin…", + "Join the ArtCraft community on Discord": "Liity ArtCraft-yhteisöön Discordissa", + "Keep in Local": "Säilytä Paikallisessa", + "Keep it on a drive with room: smart previews are about 1 MB per photo. The thumbnail cache stays in the library.": "Pidä se asemalla, jolla on tilaa: älyesikatselut vievät noin 1 Mt kuvaa kohden. Pikkukuvien välimuisti pysyy kirjastossa.", + "Keyboard Shortcuts": "Pikanäppäimet", + "Keyword": "Avainsana", + "Keyword Count": "Avainsanojen määrä", + "Keyword Info": "Avainsanan tiedot", + "Keyword List": "Avainsanaluettelo", + "Keyword Lists": "Avainsanaluettelot", + "Keyword Name": "Avainsanan nimi", + "Keyword Painter": "Avainsanasivellin", + "Keyword Set": "Avainsanajoukko", + "Keyword Sets": "Avainsanajoukot", + "Keyword Suggestions": "Avainsanaehdotukset", + "Keyword Tag Options": "Avainsanatunnisteen asetukset", + "Keyword to paint": "Maalattava avainsana", + "Keywords": "Avainsanat", + "Keywords & People": "Avainsanat ja henkilöt", + "Keywords (K)": "Avainsanat (K)", + "Keywords (⌥1–⌥9)": "Avainsanat (⌥1–⌥9)", + "Keywords of the selection": "Valinnan avainsanat", + "Keywords you add appear here; ⌥1–⌥9 apply them.": "Lisäämäsi avainsanat näkyvät tässä; ⌥1–⌥9 ottaa ne käyttöön.", + "LUT-based": "LUT-pohjainen", + "Label": "Merkintä", + "Label Set": "Merkintäjoukko", + "Landscape": "Maisema", + "Landscape (wide)": "Maisema (leveä)", + "Language": "Kieli", + "Last": "Viimeinen", + "Last GPU fallback": "Viimeisin GPU-varamenettely", + "Last commit": "Viimeisin commit", + "Last loupe render": "Viimeisin suurennuslasin renderöinti", + "Last view": "Viimeisin näkymä", + "Lateral Chromatic Aberration": "Poikittainen kromaattinen aberraatio", + "Layer": "Taso", + "Layers": "Tasot", + "Layout": "Asettelu", + "Layout Image Matte": "Asettelukuvan paspis", + "Layout Image Opacity": "Asettelukuvan peittävyys", + "Leave them": "Jätä ne", + "Left": "Vasen", + "Left: the standard (SDR) range up to SDR white. Right: the HDR range, one band per stop above SDR white (the orange line: the HDR headroom). With Visualize HDR range on, the bands take its colours.": "Vasen: vakioalue (SDR) SDR-valkoiseen asti. Oikea: HDR-alue, yksi kaista SDR-valkoisen yläpuolella olevaa aukkoa kohden (oranssi viiva: HDR-varakorkeus). Kun HDR-alueen havainnollistus on päällä, kaistat käyttävät sen värejä.", + "Lens": "Objektiivi", + "Lens Blur": "Objektiivin epätarkkuus", + "Lens Corrections": "Objektiivikorjaukset", + "Letter": "Letter", + "Level": "Taso", + "Library": "Kirjasto", + "Library Folders": "Kirjastokansiot", + "Library Info": "Kirjaston tiedot", + "Library Originals": "Kirjaston alkuperäiset", + "Library Preferences": "Kirjaston asetukset", + "Library State": "Kirjaston tila", + "Library name": "Kirjaston nimi", + "Library saved": "Kirjasto tallennettu", + "Licence:": "Lisenssi:", + "Light": "Valo", + "Light Mode": "Vaalea tila", + "Light Theme": "Vaalea teema", + "LightCraft Default": "LightCraftin oletus", + "LightCraft Effect Presets": "LightCraftin tehosteesiasetukset", + "LightCraft Help": "LightCraftin ohje", + "LightCraft Preset": "LightCraft-esiasetus", + "LightCraft Presets": "LightCraft-esiasetukset", + "LightCraft Website": "LightCraftin verkkosivusto", + "LightCraft could not start": "LightCraft ei voinut käynnistyä", + "LightCraft couldn't find where to keep your library.": "LightCraft ei löytänyt paikkaa kirjastosi säilytykselle.", + "LightCraft couldn't open the library at": "LightCraft ei voinut avata kirjastoa kohteessa", + "LightCraft does not know this model, so it assumed:": "LightCraft ei tunne tätä mallia, joten se oletti:", + "LightCraft on GitHub": "LightCraft GitHubissa", + "LightCraft stopped": "LightCraft pysähtyi", + "LightCraft — Second Window": "LightCraft — toinen ikkuna", + "Lightroom Catalog Import": "Lightroom-katalogin tuonti", + "Lightroom Classic Catalog": "Lightroom Classic -katalogi", + "Lightroom catalogs import into the open library; no separate catalog folder is created.": "Lightroom-katalogit tuodaan avattuun kirjastoon; erillistä katalogikansiota ei luoda.", + "Lightroom import cancelled": "Lightroom-tuonti peruttu", + "Lightroom inspection cancelled": "Lightroom-tarkastelu peruttu", + "Lights": "Vaaleat", + "Lights Out": "Valot sammuksiin", + "Limit": "Raja", + "Limit file size (KB, 0 = off)": "Rajoita tiedostokokoa (kt, 0 = pois)", + "Line delta": "Rivien muutos", + "Linear": "Lineaarinen", + "Linear Gradient": "Lineaarinen liukuväri", + "Lines +/−": "Rivit +/−", + "Lines added": "Lisätyt rivit", + "Lines deleted": "Poistetut rivit", + "Link all margins": "Linkitä kaikki marginaalit", + "List Albums": "Listaa albumit", + "List Develop Controls": "Listaa kehityssäätimet", + "List History": "Listaa historia", + "List Presets": "Listaa esiasetukset", + "List Profiles": "Listaa profiilit", + "List this folder in Local from now on": "Listaa tämä kansio Paikallisessa tästä lähtien", + "Loading preview…": "Ladataan esikatselua…", + "Local": "Paikallinen", + "Local folders": "Paikalliset kansiot", + "Local library — no cloud account needed": "Paikallinen kirjasto — pilvitiliä ei tarvita", + "Local photos aren't in the library yet: Add to My Photos first, then move them": "Paikalliset kuvat eivät ole vielä kirjastossa: lisää ne ensin Omiin kuviin ja siirrä sitten", + "Locate Missing Files…": "Paikanna puuttuvat tiedostot…", + "Locate Missing File…": "Paikanna puuttuva tiedosto…", + "Locate Photo": "Paikanna kuva", + "Location": "Sijainti", + "Lock": "Lukitse", + "Lock Crop Aspect": "Lukitse rajauksen kuvasuhde", + "Lock On AF": "Lukitse tarkennus", + "Locked": "Lukittu", + "Long Edge": "Pitkä sivu", + "Looking for changes": "Etsitään muutoksia", + "Looking for photos…": "Etsitään kuvia…", + "Looking up places": "Haetaan paikkoja", + "Lossless": "Häviötön", + "Low": "Matala", + "Luminance": "Kirkkaus", + "Luminance Range": "Kirkkausalue", + "Lush Greens": "Rehevät vihreät", + "M50, R100 and R8. CR3 files the decoder can't read yet still open from their embedded JPEG, as before.": "M50, R100 ja R8. CR3-tiedostot, joita purkaja ei vielä osaa lukea, avautuvat edelleen upotetusta JPEG-kuvastaan kuten ennenkin.", + "Magenta": "Magenta", + "Magenta Hue": "Magentan sävy", + "Magenta Luminance": "Magentan kirkkaus", + "Magenta Saturation": "Magentan värikylläisyys", + "Make Candidate the Select": "Tee ehdokkaasta valinta", + "Make it now": "Tee se nyt", + "Make the denoised picture of the photos I am looking at": "Tee katsomieni kuvien kohinanpoistettu kuva", + "Manage Effect Presets…": "Hallitse tehosteesiasetuksia…", + "Manage Presets…": "Hallitse esiasetuksia…", + "Managed by Printer (Adobe RGB)": "Tulostimen hallinnoima (Adobe RGB)", + "Managed by Printer (sRGB)": "Tulostimen hallinnoima (sRGB)", + "Manual": "Manuaalinen", + "Margins": "Marginaalit", + "Margins are a share of the slide's shorter side, so slides look the same on any screen.": "Marginaalit ovat osuus dian lyhyemmästä sivusta, joten diat näyttävät samalta millä tahansa näytöllä.", + "Marquee zoom": "Aluezoom", + "Mask": "Maski", + "Mask Adjustment": "Maskin säätö", + "Masking": "Maskaus", + "Masking (M)": "Maskaus (M)", + "Masks": "Maskit", + "Masks keep their sliders. Export presets first to keep a copy.": "Maskit säilyttävät liukusäätimensä. Vie esiasetukset ensin säilyttääksesi kopion.", + "Match": "Täsmää", + "Match Total Exposures": "Täsmää kokonaisvalotukset", + "Matrix/TRC": "Matriisi/TRC", + "Matte": "Matta", + "Matte Soft": "Pehmeä matta", + "Med": "Keski", + "Medium Contrast": "Keskikontrastinen", + "Megapixels": "Megapikselit", + "Memory Budget": "Muistibudjetti", + "Memory Usage": "Muistin käyttö", + "Memory for caches": "Välimuistien muisti", + "Menu": "Valikko", + "Merge": "Yhdistä", + "Merge Keywords": "Yhdistä avainsanat", + "Merge into…": "Yhdistä kohteeseen…", + "Merged": "Yhdistetty", + "Merged PRs": "Yhdistetyt PR:t", + "Merging": "Yhdistetään", + "Merging…": "Yhdistetään…", + "Meta's terms, not LightCraft's. Downloading it means accepting them.": "Metan ehdot, ei LightCraftin. Lataaminen tarkoittaa niiden hyväksymistä.", + "Metadata": "Metatiedot", + "Metadata Preset": "Metatietoesiasetus", + "Metadata Presets": "Metatietoesiasetukset", + "Metadata preset": "Metatietoesiasetus", + "Metadata read": "Metatiedot luettu", + "Midnight": "Keskiyö", + "Midpoint": "Keskipiste", + "Midtones": "Keskisävyt", + "Midtones Hue": "Keskisävyjen sävy", + "Midtones Luminance": "Keskisävyjen kirkkaus", + "Midtones Saturation": "Keskisävyjen värikylläisyys", + "Midtones split": "Keskisävyjen jako", + "Minimize": "Pienennä", + "Missing Photos": "Puuttuvat kuvat", + "Missing metadata ({camera}, {title}…) leaves an empty gap; a name that comes out empty keeps the original name.": "Puuttuvat metatiedot ({camera}, {title}…) jättävät tyhjän aukon; nimi, joka jäisi tyhjäksi, säilyttää alkuperäisen nimen.", + "Missing photos move to Recently Deleted and can be restored; no file on disk is touched.": "Puuttuvat kuvat siirtyvät Äskettäin poistettuihin ja ne voi palauttaa; levyllä oleviin tiedostoihin ei kosketa.", + "Misty Morning": "Sumuinen aamu", + "Mo": "Ma", + "Mode": "Tila", + "Model": "Malli", + "Models": "Mallit", + "Modified Date": "Muokkauspäivä", + "Monday": "maanantai", + "Monitor profile": "Näytön profiili", + "Mono Red Filter": "Mono punasuodin", + "Mono Rich": "Mono rikas", + "Mono Soft": "Mono pehmeä", + "Monochrome": "Yksivärinen", + "Month": "Kuukausi", + "Moody": "Synkkä", + "Moody Portrait": "Synkkä muotokuva", + "More": "Lisää", + "More preset options": "Lisää esiasetusvaihtoehtoja", + "Move": "Siirrä", + "Move Album": "Siirrä albumi", + "Move Down": "Siirrä alas", + "Move Down in Stack": "Siirrä pinossa alas", + "Move Folder": "Siirrä kansio", + "Move Folder To…": "Siirrä kansio kohteeseen…", + "Move Keyword": "Siirrä avainsana", + "Move Mask": "Siirrä maski", + "Move Photos": "Siirrä kuvat", + "Move Preset to Group": "Siirrä esiasetus ryhmään", + "Move Preset to New Group": "Siirrä esiasetus uuteen ryhmään", + "Move Selected Photos Here": "Siirrä valitut kuvat tänne", + "Move Sidebar Section": "Siirrä sivupalkin osio", + "Move Up": "Siirrä ylös", + "Move Up in Stack": "Siirrä pinossa ylös", + "Move in Stack": "Siirrä pinossa", + "Move the files (into the library's Originals/, or a folder you choose), removing them from the source": "Siirrä tiedostot (kirjaston Originals/-kansioon tai valitsemaasi kansioon) ja poista ne lähteestä", + "Move them": "Siirrä ne", + "Move to": "Siirrä kohteeseen", + "Move to Folder": "Siirrä kansioon", + "Move to Folder…": "Siirrä kansioon…", + "Move to Group": "Siirrä ryhmään", + "Move to Group…": "Siirrä ryhmään…", + "Move to group": "Siirrä ryhmään", + "Move: the files are moved to the folder below; each original (and its XMP sidecar) is removed from the source only after its copy is verified. Duplicates and files that fail stay where they are.": "Siirrä: tiedostot siirretään alla olevaan kansioon; jokainen alkuperäinen (ja sen XMP-sivutiedosto) poistetaan lähteestä vasta, kun sen kopio on varmistettu. Kaksoiskappaleet ja epäonnistuneet tiedostot pysyvät paikoillaan.", + "Moves every photo imported from this disk to Recently Deleted; no file is touched": "Siirtää kaikki tältä levyltä tuodut kuvat Äskettäin poistettuihin; tiedostoihin ei kosketa", + "Moves the files and their XMP sidecars into this folder; never overwrites": "Siirtää tiedostot ja niiden XMP-sivutiedostot tähän kansioon; ei koskaan korvaa mitään", + "Moves the photos imported from this folder to Recently Deleted; no file is touched": "Siirtää tästä kansiosta tuodut kuvat Äskettäin poistettuihin; tiedostoihin ei kosketa", + "Multi": "Useita", + "Muted": "Hillitty", + "Muted Film": "Hillitty filmi", + "My Photos": "Omat kuvat", + "My Photos Panel": "Omat kuvat -paneeli", + "My Preset": "Oma esiasetus", + "Name": "Nimi", + "Name (A–Z)": "Nimi (A–Ö)", + "Name Face": "Nimeä kasvot", + "Name Faces": "Nimeä kasvot", + "Name of the folder the original is in": "Sen kansion nimi, jossa alkuperäinen on", + "Name the preset": "Nimeä esiasetus", + "Named": "Nimetty", + "Named People": "Nimetyt henkilöt", + "Names appear in the label menu, the filter bar and the Info panel, and are written to XMP. Empty = the colour's name.": "Nimet näkyvät merkintävalikossa, suodatinpalkissa ja Tiedot-paneelissa, ja ne kirjoitetaan XMP:hen. Tyhjä = värin nimi.", + "Navigator": "Navigaattori", + "Needs Work": "Vaatii työtä", + "Neon Dusk": "Neonhämärä", + "Neon Night": "Neonyö", + "Nested group": "Sisäkkäinen ryhmä", + "Neutral": "Neutraali", + "Never": "Ei koskaan", + "New": "Uusi", + "New Album": "Uusi albumi", + "New Album…": "Uusi albumi…", + "New Folder on Disk": "Uusi kansio levylle", + "New Folder on Disk…": "Uusi kansio levylle…", + "New Folder…": "Uusi kansio…", + "New Group…": "Uusi ryhmä…", + "New Library": "Uusi kirjasto", + "New Library: Choose Where to Put It": "Uusi kirjasto: valitse sijainti", + "New Library…": "Uusi kirjasto…", + "New Smart Album": "Uusi älyalbumi", + "New Smart Album from Filter…": "Uusi älyalbumi suodattimesta…", + "New Smart Album…": "Uusi älyalbumi…", + "New album": "Uusi albumi", + "New album…": "Uusi albumi…", + "New blank PDF": "Uusi tyhjä PDF", + "New group — Return": "Uusi ryhmä — Return", + "New name": "Uusi nimi", + "New spot (Return adds it here)": "Uusi täplä (Return lisää sen tähän)", + "New template name": "Uuden mallipohjan nimi", + "New time": "Uusi aika", + "New…": "Uusi…", + "Next Appearance Mode": "Seuraava ulkoasutila", + "Next History Step": "Seuraava historiavaihe", + "Next Photo": "Seuraava kuva", + "Next Slide": "Seuraava dia", + "Next page": "Seuraava sivu", + "Next up for AI Denoise…": "Seuraavana tekoälykohinanpoistossa…", + "Night Blue": "Yönsininen", + "Nikon High Efficiency NEF (HE / HE★) uses intoPIX TicoRAW compression. LightCraft does not currently have a license for this codec, so only the camera's embedded JPEG preview is available, not the raw sensor data. To edit raw data, shoot Lossless compressed NEF or convert existing HE files to DNG using a licensed converter.": "Nikon High Efficiency NEF (HE / HE★) käyttää intoPIXin TicoRAW-pakkausta. LightCraftilla ei tällä hetkellä ole lisenssiä tähän koodekkiin, joten käytettävissä on vain kameran upotettu JPEG-esikatselu, ei raakaa anturidataa. Muokataksesi raakadataa kuvaa Lossless compressed NEF -muodossa tai muunna olemassa olevat HE-tiedostot DNG:ksi lisensoidulla muuntimella.", + "No": "Ei", + "No Camera or Card Found": "Kameraa tai korttia ei löytynyt", + "No Date Groups": "Ei päivämääräryhmiä", + "No Label": "Ei merkintää", + "No Matte": "Ei paspista", + "No Recent Libraries": "Ei viimeisimpiä kirjastoja", + "No Stars": "Ei tähtiä", + "No Tool": "Ei työkalua", + "No albums match": "Yksikään albumi ei täsmää", + "No albums yet": "Ei vielä albumeja", + "No automatic versions.": "Ei automaattisia versioita.", + "No camera": "Ei kameraa", + "No change": "Ei muutosta", + "No clipping detected in this preview.": "Tässä esikatselussa ei havaittu leikkautumista.", + "No contributor data was built into this copy.": "Tähän kopioon ei sisällytetty tekijätietoja.", + "No date": "Ei päivämäärää", + "No dust spots found": "Pölyhiukkasia ei löytynyt", + "No edits yet.": "Ei vielä muokkauksia.", + "No effect matches": "Yksikään tehoste ei täsmää", + "No effect presets yet": "Ei vielä tehosteesiasetuksia", + "No exposure information": "Ei valotustietoja", + "No faces by that name": "Ei kasvoja tällä nimellä", + "No filter presets yet": "Ei vielä suodinesiasetuksia", + "No folders to browse": "Ei selattavia kansioita", + "No graphics processor found: LightCraft renders on the CPU, which is much slower. Details in Help → System Info.": "Grafiikkaprosessoria ei löytynyt: LightCraft renderöi suorittimella, mikä on paljon hitaampaa. Lisätietoja kohdassa Ohje → Järjestelmätiedot.", + "No imported folders yet": "Ei vielä tuotuja kansioita", + "No keywords are exported": "Avainsanoja ei viedä", + "No keywords match": "Yksikään avainsana ei täsmää", + "No keywords yet": "Ei vielä avainsanoja", + "No lens data embedded in this file (DNG lens opcodes only).": "Tähän tiedostoon ei ole upotettu objektiivitietoja (vain DNG:n objektiivin opkoodit).", + "No lens data embedded in this file.": "Tähän tiedostoon ei ole upotettu objektiivitietoja.", + "No masks yet. Choose a mask type above.": "Ei vielä maskeja. Valitse maskin tyyppi yltä.", + "No matching commands": "Ei täsmääviä komentoja", + "No matching photos": "Ei täsmääviä kuvia", + "No metadata found": "Metatietoja ei löytynyt", + "No model credits were built into this copy.": "Tähän kopioon ei sisällytetty mallien tekijätietoja.", + "No named people in these photos": "Näissä kuvissa ei ole nimettyjä henkilöitä", + "No named people yet": "Ei vielä nimettyjä henkilöitä", + "No named people yet. Name the faces below to start.": "Ei vielä nimettyjä henkilöitä. Aloita nimeämällä alla olevat kasvot.", + "No new presets": "Ei uusia esiasetuksia", + "No people yet": "Ei vielä henkilöitä", + "No person by that name": "Ei henkilöä tällä nimellä", + "No photo has it; the keywords below it go too.": "Yhdelläkään kuvalla sitä ei ole; myös sen alla olevat avainsanat poistuvat.", + "No photo selected": "Kuvaa ei ole valittu", + "No photos": "Ei kuvia", + "No photos found": "Kuvia ei löytynyt", + "No photos in this folder": "Tässä kansiossa ei ole kuvia", + "No photos match the active filters": "Yksikään kuva ei täsmää käytössä oleviin suodattimiin", + "No photos match the filters (View → Clear Filters)": "Yksikään kuva ei täsmää suodattimiin (Näytä → Tyhjennä suodattimet)", + "No photos yet": "Ei vielä kuvia", + "No raw photos yet: cameras appear here once their photos are in the library.": "Ei vielä raw-kuvia: kamerat ilmestyvät tähän, kun niiden kuvat ovat kirjastossa.", + "No reference photo": "Ei vertailukuvaa", + "No unnamed faces. Faces found in your photos appear here until you name them.": "Ei nimeämättömiä kasvoja. Kuvistasi löytyneet kasvot näkyvät tässä, kunnes nimeät ne.", + "No usable GPU found: rendering on the CPU": "Käyttökelpoista GPU:ta ei löytynyt: renderöidään suorittimella", + "No versions yet. Create one to keep this look.": "Ei vielä versioita. Luo yksi säilyttääksesi tämän ilmeen.", + "Noise": "Kohina", + "Noise Reduction": "Kohinanpoisto", + "Non-raw photos": "Ei-raw-kuvat", + "None": "Ei mitään", + "None (the display is treated as sRGB)": "Ei mitään (näyttöä käsitellään sRGB:nä)", + "None yet: save the current settings as a template below.": "Ei vielä mitään: tallenna nykyiset asetukset mallipohjana alla.", + "Not Now": "Ei nyt", + "Not loaded yet": "Ei vielä ladattu", + "Not saved": "Ei tallennettu", + "Nothing is fetched until you accept. The model is kept on this computer only; LightCraft never uploads or shares it.": "Mitään ei noudeta ennen kuin hyväksyt. Malli säilytetään vain tällä tietokoneella; LightCraft ei koskaan lähetä tai jaa sitä.", + "Nothing to compare": "Ei mitään vertailtavaa", + "Nothing to survey": "Ei mitään kartoitettavaa", + "Nudge Develop Value": "Säädä kehitysarvoa", + "Numbered JPEG files (name-001.jpg…) in a new folder named in the next step.": "Numeroidut JPEG-tiedostot (nimi-001.jpg…) uuteen kansioon, jonka nimi annetaan seuraavassa vaiheessa.", + "OK": "OK", + "ONNX model": "ONNX-malli", + "Object": "Kohde", + "Object Mask": "Kohdemaski", + "Object and Describe masks use SAM 3, Meta's segmentation model. It isn't part of LightCraft, and everything else works without it.": "Kohde- ja Kuvaile-maskit käyttävät SAM 3:a, Metan segmentointimallia. Se ei kuulu LightCraftiin, ja kaikki muu toimii ilman sitä.", + "October 2026": "lokakuu 2026", + "Off": "Pois", + "Offset": "Siirtymä", + "Offset X": "Siirtymä X", + "Offset Y": "Siirtymä Y", + "On NixOS, start it from `nix develop`.": "NixOS:ssa käynnistä se komennolla `nix develop`.", + "One page per slide (the long side in pixels = points), with the slide duration and fade for the viewer's presentation mode.": "Yksi sivu diaa kohden (pitkä sivu pikseleinä = pisteet), dian kesto ja häivytys katselijan esitystilaa varten.", + "One photo fills each page inside the margins.": "Yksi kuva täyttää jokaisen sivun marginaalien sisällä.", + "Only": "Vain", + "Only photos whose AI Denoise amount is above 0 are made. Exports always make theirs if it is missing.": "Tehdään vain kuvat, joiden tekoälykohinanpoiston määrä on yli 0. Viennit tekevät omansa aina, jos se puuttuu.", + "Opacity": "Peittävyys", + "Opacity (%)": "Peittävyys (%)", + "Open Library": "Avaa kirjasto", + "Open Library…": "Avaa kirjasto…", + "Open Log Folder": "Avaa lokikansio", + "Open Original in Other Editor (RAW, no copy)": "Avaa alkuperäinen toisessa muokkausohjelmassa (RAW, ei kopiota)", + "Open Recent Library": "Avaa viimeisin kirjasto", + "Open Settings": "Avaa asetukset", + "Open in": "Avaa ohjelmassa", + "Open in Detail": "Avaa Tarkastelussa", + "Open page": "Avaa sivu", + "Open the model's page": "Avaa mallin sivu", + "Open the place in OpenStreetMap": "Avaa paikka OpenStreetMapissa", + "Opens the model's own page in your browser, to read about it or get the file yourself.": "Avaa mallin oman sivun selaimessa, jotta voit lukea siitä tai hakea tiedoston itse.", + "Open…": "Avaa…", + "Optics": "Optiikka", + "Optimize Library": "Optimoi kirjasto", + "Optional name": "Valinnainen nimi", + "Options": "Asetukset", + "Orange": "Oranssi", + "Orange Hue": "Oranssin sävy", + "Orange Luminance": "Oranssin kirkkaus", + "Orange Saturation": "Oranssin värikylläisyys", + "Orientation": "Suunta", + "Original": "Alkuperäinen", + "Original + Settings": "Alkuperäinen + asetukset", + "Original extension without the dot": "Alkuperäinen tiedostopääte ilman pistettä", + "Original file name without its extension": "Alkuperäinen tiedostonimi ilman päätettä", + "Original files": "Alkuperäiset tiedostot", + "Original offline · editing the smart preview": "Alkuperäinen ei käytettävissä · muokataan älyesikatselua", + "Original offline · no smart preview": "Alkuperäinen ei käytettävissä · ei älyesikatselua", + "Originals": "Alkuperäiset", + "Other editor": "Toinen muokkausohjelma", + "Other images (JPEG, PNG, TIFF, HEIC…)": "Muut kuvat (JPEG, PNG, TIFF, HEIC…)", + "Other…": "Muu…", + "Overlay": "Peittokuva", + "Overlay color": "Peittokuvan väri", + "Overlays": "Peittokuvat", + "Override colour": "Ohita väri", + "Overwrite": "Korvaa", + "Own duration (off: the slide duration)": "Oma kesto (pois: dian kesto)", + "Page": "Sivu", + "Pages": "Sivut", + "Paint": "Maalaa", + "Paint only areas like the one under the brush": "Maalaa vain alueet, jotka muistuttavat sivellimen alla olevaa", + "Paint over a distraction on the photo to remove it.": "Maalaa häiriötekijän päälle kuvassa poistaaksesi sen.", + "Paint overlay": "Maalauksen peittokuva", + "Panels": "Paneelit", + "Panorama": "Panoraama", + "Panorama Merge": "Panoraaman yhdistäminen", + "Panorama Merge Preview": "Panoraaman yhdistämisen esikatselu", + "Panorama with Last Settings": "Panoraama viimeisillä asetuksilla", + "Panoramas": "Panoraamat", + "Panorama…": "Panoraama…", + "Paper": "Paperi", + "Parametric curve": "Parametrinen käyrä", + "Paste": "Liitä", + "Paste Edit Settings": "Liitä muokkausasetukset", + "Paste Metadata": "Liitä metatiedot", + "Paste Selected Settings": "Liitä valitut asetukset", + "Paste Selected Settings…": "Liitä valitut asetukset…", + "Paste Settings": "Liitä asetukset", + "Paste Settings from Previous": "Liitä asetukset edellisestä", + "Paste from Previous": "Liitä edellisestä", + "Paste pages": "Liitä sivut", + "Pastel Haze": "Pastellihuntu", + "Pause / Resume Slideshow": "Keskeytä / jatka diaesitystä", + "Pen Pressure": "Kynän paine", + "Pending photo action cancelled": "Odottava kuvatoiminto peruttu", + "Pending photo action cancelled because its library or photo changed": "Odottava kuvatoiminto peruttu, koska sen kirjasto tai kuva muuttui", + "People": "Henkilöt", + "People Count": "Henkilöiden määrä", + "Percent": "Prosentti", + "Percentage": "Prosenttiosuus", + "Perceptual": "Havaintoon perustuva", + "Performance": "Suorituskyky", + "Person": "Henkilö", + "Perspective": "Perspektiivi", + "Pet Eye": "Lemmikin silmä", + "Pet Eye Catchlight": "Lemmikin silmänvalo", + "Photo": "Kuva", + "Photo Above": "Kuva yllä", + "Photo Below": "Kuva alla", + "Photo Grid": "Kuvaruudukko", + "Photo Grid (G)": "Kuvaruudukko (G)", + "Photo Merge": "Kuvien yhdistäminen", + "Photo ▸ Edit In ▸ Edit in PhotoCraft (⇧⌘E, or right-click a photo) renders a copy with your edits, stacks it with the original and opens it in PhotoCraft. Save there and the copy updates here. As PSD, PhotoCraft saves straight back to it. Leave the location empty unless you use a portable copy.": "Kuva → Muokkaa ohjelmassa → Muokkaa PhotoCraftissa (⇧⌘E tai napsauta kuvaa hiiren kakkospainikkeella) renderöi kopion muokkauksineen, pinoaa sen alkuperäisen kanssa ja avaa sen PhotoCraftissa. Tallenna siellä, niin kopio päivittyy täällä. PSD-muodossa PhotoCraft tallentaa suoraan siihen. Jätä sijainti tyhjäksi, ellet käytä kannettavaa kopiota.", + "Photo ▸ Edit in External Editor (⇧⌘E) renders a 16-bit TIFF copy, stacks it with the original and opens it here (an app name on macOS, a program path elsewhere).": "Kuva → Muokkaa ulkoisessa muokkausohjelmassa (⇧⌘E) renderöi 16-bittisen TIFF-kopion, pinoaa sen alkuperäisen kanssa ja avaa sen täällä (macOS:ssä sovelluksen nimi, muualla ohjelman polku).", + "PhotoCraft": "PhotoCraft", + "Photos": "Kuvat", + "Photos are shown through your monitor's ICC profile, so colours are right on wide-gamut and calibrated displays, and the Detail view uses the display's whole gamut. The histogram, the preview caches and exports are not affected.": "Kuvat näytetään näyttösi ICC-profiilin läpi, joten värit ovat oikein laajan värialueen ja kalibroiduilla näytöillä, ja Tarkastelu-näkymä käyttää näytön koko väriavaruutta. Histogrammi, esikatselun välimuistit ja viennit eivät muutu.", + "Photos edited in HDR: JPEG with an HDR gain map (looks right everywhere, brighter highlights on HDR displays), AVIF as 10-bit, PNG and JPEG XL as 16-bit Rec. 2020 PQ; TIFF needs 32-bit float": "HDR:nä muokatut kuvat: JPEG HDR-vahvistuskartalla (näyttää oikealta kaikkialla, kirkkaammat huippuvalot HDR-näytöillä), AVIF 10-bittisenä, PNG ja JPEG XL 16-bittisenä Rec. 2020 PQ:na; TIFF vaatii 32-bittisen liukuluvun", + "Photos per bracket (0 = auto)": "Kuvia haarukointisarjaa kohden (0 = auto)", + "Photos seen in Local but never added or changed leave the catalog when their folder hasn't been browsed for this long (checked when the library opens). Files stay on disk; browsing the folder shows them again.": "Paikallisessa nähdyt, mutta ei koskaan lisätyt tai muutetut kuvat poistuvat katalogista, kun kansiota ei ole selattu näin pitkään aikaan (tarkistetaan kirjastoa avattaessa). Tiedostot pysyvät levyllä; kansion selaaminen näyttää ne taas.", + "Photos stay in All Photos. Deleting a folder also deletes its albums. You can undo this.": "Kuvat pysyvät kohdassa Kaikki kuvat. Kansion poistaminen poistaa myös sen albumit. Voit kumota tämän.", + "Photos that arrive in this folder (tethering, a scanner, a sync app) are added as soon as they're complete.": "Tähän kansioon saapuvat kuvat (tethering, skanneri, synkronointisovellus) lisätään heti, kun ne ovat valmiita.", + "Photos you import show up here. Nothing is copied or moved unless you choose to.": "Tuomasi kuvat näkyvät tässä. Mitään ei kopioida tai siirretä, ellet valitse niin.", + "Pick": "Valitse", + "Pick Flag": "Valintalippu", + "Pick a colour on the photo with the eyedropper.": "Poimi kuvasta väri pipetillä.", + "Pick a date": "Valitse päivämäärä", + "Pick the sharpest photo of each burst": "Valitse kustakin sarjasta terävin kuva", + "Picked": "Valittu kuva", + "Picks": "Valitut", + "Pictures": "Kuvat", + "Pixels": "Pikselit", + "Place Names Status": "Paikannimien tila", + "Place names download cancelled": "Paikannimien lataus peruttu", + "Place names downloaded": "Paikannimet ladattu", + "Plain Black": "Pelkkä musta", + "Playback": "Toisto", + "Point Color": "Pistevärit", + "Point Curve": "Pistekäyrä", + "Point Curve Presets": "Pistekäyrien esiasetukset", + "Portrait": "Muotokuva", + "Portrait (tall)": "Muotokuva (pysty)", + "Position": "Sijainti", + "Preferences": "Asetukset", + "Preferences…": "Asetukset…", + "Prepare AI Masks": "Valmistele tekoälymaskit", + "Preset": "Esiasetus", + "Preset name": "Esiasetuksen nimi", + "Presets": "Esiasetukset", + "Presets & Profiles": "Esiasetukset ja profiilit", + "Presets (Shift+P)": "Esiasetukset (Shift+P)", + "Presets ▾": "Esiasetukset ⌄", + "Press keys…": "Paina näppäimiä…", + "Preview": "Esikatselu", + "Preview Build Progress": "Esikatselun luonnin eteneminen", + "Preview only": "Vain esikatselu", + "Preview only: editing the camera's embedded JPEG": "Vain esikatselu: muokataan kameran upotettua JPEG-kuvaa", + "Preview size": "Esikatselun koko", + "Preview unavailable": "Esikatselu ei käytettävissä", + "Previews": "Esikatselut", + "Previous History Step": "Edellinen historiavaihe", + "Previous Photo": "Edellinen kuva", + "Previous Slide": "Edellinen dia", + "Previous page": "Edellinen sivu", + "Previous settings": "Edelliset asetukset", + "Primaries (x, y)": "Päävärit (x, y)", + "Print": "Tulostus", + "Print to PDF": "Tulosta PDF:ksi", + "Print…": "Tulosta…", + "Processor": "Suoritin", + "Profile": "Profiili", + "Profile Browser": "Profiiliselain", + "Profile Distortion": "Profiilin vääristymä", + "Profile Menu": "Profiilivalikko", + "Profile Vignetting": "Profiilin vinjetointi", + "Profile:": "Profiili:", + "Profiles": "Profiilit", + "Profiles assigned in your desktop's colour settings are usually in ~/.local/share/icc.": "Työpöydän värinhallinta-asetuksissa määritetyt profiilit ovat yleensä kansiossa ~/.local/share/icc.", + "Progressive": "Progressiivinen", + "Projection": "Projektio", + "Proof copy created": "Vedoskopio luotu", + "Properties": "Ominaisuudet", + "Public Domain": "Yleinen alue", + "Pupil Size": "Pupillin koko", + "Purge Unused Keywords": "Tyhjennä käyttämättömät avainsanat", + "Purple": "Violetti", + "Purple Amount": "Violetin määrä", + "Purple Hue": "Violetin sävy", + "Purple Hue High": "Violetin sävy ylä", + "Purple Hue Low": "Violetin sävy ala", + "Purple Luminance": "Violetin kirkkaus", + "Purple Saturation": "Violetin värikylläisyys", + "Put New Keywords Inside": "Lisää uudet avainsanat sisään", + "Put New Keywords Inside This Keyword": "Lisää uudet avainsanat tämän avainsanan sisään", + "Put the locations you removed from Local back (no files change)": "Palauta Paikallisesta poistamasi sijainnit (tiedostot eivät muutu)", + "Quality": "Laatu", + "Query Photos": "Kysele kuvia", + "Quick Collection": "Pikakokoelma", + "Quick Develop": "Pikakehitys", + "Quiet Green": "Hiljainen vihreä", + "Quit": "Lopeta", + "Quit Anyway": "Lopeta silti", + "Quit LightCraft": "Lopeta LightCraft", + "Quit while tasks are running?": "Lopetetaanko, vaikka tehtäviä on käynnissä?", + "Quit with unsaved changes?": "Lopetetaanko tallentamattomilla muutoksilla?", + "Radial": "Säteittäinen", + "Radial Gradient": "Säteittäinen liukuväri", + "Radius": "Säde", + "Random": "Satunnainen", + "Range": "Alue", + "Rate ★": "Luokitus ★", + "Rate ★ and advance": "Luokitus ★ ja siirry eteenpäin", + "Rate ★★": "Luokitus ★★", + "Rate ★★ and advance": "Luokitus ★★ ja siirry eteenpäin", + "Rate ★★★": "Luokitus ★★★", + "Rate ★★★ and advance": "Luokitus ★★★ ja siirry eteenpäin", + "Rate ★★★★": "Luokitus ★★★★", + "Rate ★★★★ and advance": "Luokitus ★★★★ ja siirry eteenpäin", + "Rate ★★★★★": "Luokitus ★★★★★", + "Rate ★★★★★ and advance": "Luokitus ★★★★★ ja siirry eteenpäin", + "Rating": "Luokitus", + "Rating cleared": "Luokitus poistettu", + "Rating stars": "Luokitustähdet", + "Ratings & flags": "Luokitukset ja liput", + "Raw": "Raw", + "Raw default": "Raw-oletus", + "Raw defaults": "Raw-oletukset", + "Raw files": "Raw-tiedostot", + "Raw photos": "Raw-kuvat", + "Raw photos as DNG, with the edits embedded. Size, color and output options don't apply.": "Raw-kuvat DNG:nä, muokkaukset upotettuina. Koko-, väri- ja tulosteasetukset eivät päde.", + "Read Focus Points": "Lue tarkennuspisteet", + "Read Metadata from File": "Lue metatiedot tiedostosta", + "Read metadata updates from XMP sidecars": "Lue metatietopäivitykset XMP-sivutiedostoista", + "Read mode": "Lukutila", + "Read the SAM License": "Lue SAM-lisenssi", + "Reading": "Luetaan", + "Reading Lightroom catalog": "Luetaan Lightroom-katalogia", + "Reading Lightroom catalog…": "Luetaan Lightroom-katalogia…", + "Reading a sidecar replaces the photo's rating, labels, metadata and edits with what it says.": "Sivutiedoston lukeminen korvaa kuvan luokituksen, merkinnät, metatiedot ja muokkaukset sen sisällöllä.", + "Reading focus points": "Luetaan tarkennuspisteitä", + "Reading folder": "Luetaan kansiota", + "Reading folder…": "Luetaan kansiota…", + "Reading photos…": "Luetaan kuvia…", + "Real name": "Oikea nimi", + "Recent": "Viimeaikaiset", + "Recent Keywords": "Viimeaikaiset avainsanat", + "Recent Keywords is built in: choose another name": "Viimeaikaiset avainsanat on sisäänrakennettu: valitse toinen nimi", + "Recent Libraries": "Viimeisimmät kirjastot", + "Recently Added": "Äskettäin lisätyt", + "Recently Deleted": "Äskettäin poistetut", + "Recognise faces (experimental)": "Tunnista kasvot (kokeellinen)", + "Recognition": "Tunnistus", + "Recognition models": "Tunnistusmallit", + "Red": "Punainen", + "Red Eye": "Punasilmäisyys", + "Red Hue": "Punaisen sävy", + "Red Luminance": "Punaisen kirkkaus", + "Red Primary": "Punaisen pääväri", + "Red Saturation": "Punaisen värikylläisyys", + "Red channel": "Punainen kanava", + "Red label": "Punainen merkintä", + "Red/Cyan Fringe": "Puna/syaanireunus", + "Redo": "Tee uudelleen", + "Reference": "Vertailukuva", + "Reference View": "Vertailunäkymä", + "Reference the files where they are": "Viittaa tiedostoihin niiden nykyisessä sijainnissa", + "Refine": "Tarkenna", + "Refine AI Mask Detail": "Tarkenna tekoälymaskin yksityiskohtia", + "Refine Edges": "Tarkenna reunoja", + "Refine Mask Edges": "Tarkenna maskin reunoja", + "Refine Saturation": "Tarkenna värikylläisyyttä", + "Refining the mask's detail…": "Tarkennetaan maskin yksityiskohtia…", + "Refresh Source": "Päivitä lähde", + "Refresh Source (/)": "Päivitä lähde (/)", + "Refresh View": "Päivitä näkymä", + "Reject": "Hylkää", + "Reject below focus": "Hylkää tarkennuksen alapuolella", + "Rejected": "Hylätty", + "Rejects": "Hylätyt", + "Relative": "Suhteellinen", + "Relink Photo": "Yhdistä kuva uudelleen", + "Relink photos whose file was renamed or moved": "Yhdistä uudelleen kuvat, joiden tiedosto nimettiin uudelleen tai siirrettiin", + "Relinked": "Yhdistetty uudelleen", + "Reload Changed Files": "Lataa muuttuneet tiedostot uudelleen", + "Reload from Disk": "Lataa levyltä uudelleen", + "Remove": "Poista", + "Remove (H)": "Poista (H)", + "Remove CA": "Poista kromaattinen aberraatio", + "Remove Chromatic Aberration": "Poista kromaattinen aberraatio", + "Remove Denoise Model": "Poista kohinanpoistomalli", + "Remove Disk from Library": "Poista levy kirjastosta", + "Remove Disk from Library…": "Poista levy kirjastosta…", + "Remove Face Box": "Poista kasvorajaus", + "Remove Face Model": "Poista kasvomalli", + "Remove Folder Color Label": "Poista kansion värimerkintä", + "Remove Folder from Library": "Poista kansio kirjastosta", + "Remove a filter above, or choose Clear all": "Poista suodatin yltä tai valitse Tyhjennä kaikki", + "Remove from Album": "Poista albumista", + "Remove from Favorites": "Poista suosikeista", + "Remove from Library…": "Poista kirjastosta…", + "Remove from Local": "Poista Paikallisesta", + "Remove from Photo": "Poista kuvasta", + "Remove from Selected Photos": "Poista valituista kuvista", + "Remove from Stack": "Poista pinosta", + "Remove from Target Album": "Poista kohdealbumista", + "Remove from survey": "Poista vertailusta", + "Remove location info": "Poista sijaintitiedot", + "Remove missing photos from the library": "Poista puuttuvat kuvat kirjastosta", + "Remove region": "Poista alue", + "Remove shortcut": "Poista pikakuvake", + "Remove this face box (undo with Edit ▸ Undo)": "Poista tämä kasvorajaus (kumoa kohdasta Muokkaa → Kumoa)", + "Remove this filter": "Poista tämä suodatin", + "Remove this group": "Poista tämä ryhmä", + "Remove this rule": "Poista tämä sääntö", + "Removed": "Poistettu", + "Rename": "Nimeä uudelleen", + "Rename Album": "Nimeä albumi uudelleen", + "Rename Component": "Nimeä komponentti uudelleen", + "Rename Folder": "Nimeä kansio uudelleen", + "Rename Folder…": "Nimeä kansio uudelleen…", + "Rename Keyword": "Nimeä avainsana uudelleen", + "Rename Keyword…": "Nimeä avainsana uudelleen…", + "Rename Mask": "Nimeä maski uudelleen", + "Rename Person…": "Nimeä henkilö uudelleen…", + "Rename Photos": "Nimeä kuvat uudelleen", + "Rename Photos…": "Nimeä kuvat uudelleen…", + "Rename Preset": "Nimeä esiasetus uudelleen", + "Rename Preview": "Nimeämisen esikatselu", + "Rename Template Tags": "Uudelleennimeämisen tunnisteet", + "Rename Version": "Nimeä versio uudelleen", + "Rename…": "Nimeä uudelleen…", + "Render behind image": "Renderöi kuvan taakse", + "Rendering": "Renderöinti", + "Rendering…": "Renderöidään…", + "Reorder Album": "Järjestä albumi uudelleen", + "Reorder Masks": "Järjestä maskit uudelleen", + "Reset": "Nollaa", + "Reset All": "Nollaa kaikki", + "Reset All Curves": "Nollaa kaikki käyrät", + "Reset All Keyboard Shortcuts": "Nollaa kaikki pikanäppäimet", + "Reset Before to Import State": "Nollaa Ennen tuontitilaan", + "Reset Control": "Nollaa säädin", + "Reset Crop": "Nollaa rajaus", + "Reset Edits": "Nollaa muokkaukset", + "Reset Panel Layout": "Nollaa paneelien asettelu", + "Reset Parametric Curve": "Nollaa parametrinen käyrä", + "Reset Section": "Nollaa osio", + "Reset Sidebar Sections": "Nollaa sivupalkin osiot", + "Reset Sliders": "Nollaa liukusäätimet", + "Reset Tone Curve": "Nollaa sävykäyrä", + "Reset all curves: point curves (all channels) and parametric (double-click a channel to reset only that one)": "Nollaa kaikki käyrät: pistekäyrät (kaikki kanavat) ja parametrinen (kaksoisnapsauta kanavaa nollataksesi vain sen)", + "Reset all edits": "Nollaa kaikki muokkaukset", + "Reset all edits (Cmd+Shift+R)": "Nollaa kaikki muokkaukset (Cmd+Shift+R)", + "Reset layout": "Nollaa asettelu", + "Reshuffle": "Sekoita uudelleen", + "Resize Face Box": "Muuta kasvorajauksen kokoa", + "Resize panel window": "Muuta paneeli-ikkunan kokoa", + "Resize panels": "Muuta paneelien kokoa", + "Resize region": "Muuta alueen kokoa", + "Resize to": "Muuta kokoa kohteeseen", + "Resolution (ppi)": "Tarkkuus (ppi)", + "Restore": "Palauta", + "Restore (no shortcut)": "Palauta (ei pikanäppäintä)", + "Restore Library from Backup…": "Palauta kirjasto varmuuskopiosta…", + "Restore Version": "Palauta versio", + "Restore keeps their edits; Import as new deletes the old record first.": "Palauta säilyttää niiden muokkaukset; Tuo uutena poistaa vanhan tietueen ensin.", + "Restore them": "Palauta ne", + "Retouch": "Retusointi", + "Return creates this keyword and gives it to the selected photos": "Return luo tämän avainsanan ja antaa sen valituille kuville", + "Reverse the order": "Käännä järjestys", + "Revert": "Palauta alkuperäiseen", + "Review": "Tarkistus", + "Review Import": "Tarkista tuonti", + "Right": "Oikea", + "Right-click a photo ▸ Set as Reference Photo, then View → Reference View (Shift+R)": "Napsauta kuvaa hiiren kakkospainikkeella → Aseta vertailukuvaksi, sitten Näytä → Vertailunäkymä (Shift+R)", + "Right-click a preset to delete it": "Poista esiasetus napsauttamalla sitä hiiren kakkospainikkeella", + "Rights Usage Terms": "Oikeuksien käyttöehdot", + "Rotate": "Kierrä", + "Rotate Crop": "Kierrä rajausta", + "Rotate Crop Aspect": "Kierrä rajauksen kuvasuhdetta", + "Rotate Left": "Kierrä vasemmalle", + "Rotate Right": "Kierrä oikealle", + "Roughness": "Karheus", + "Roundness": "Pyöreys", + "Rules": "Säännöt", + "Run face models on the CPU only": "Aja kasvomallit vain suorittimella", + "SAM 3 download stopped: it resumes where it left off next time.": "SAM 3:n lataus pysähtyi: se jatkuu seuraavalla kerralla siitä, mihin jäi.", + "SDR": "SDR", + "SDR Brightness": "SDR-kirkkaus", + "SDR Clarity": "SDR-selkeys", + "SDR Contrast": "SDR-kontrasti", + "SDR Highlights": "SDR-huippuvalot", + "SDR Shadows": "SDR-varjot", + "SDR Whites": "SDR-valkoiset", + "Sa": "La", + "Same as raw default": "Sama kuin raw-oletus", + "Same folder as original photo": "Sama kansio kuin alkuperäisellä kuvalla", + "Sample Mask Color": "Poimi maskin väri", + "Sample a colour on the photo": "Poimi väri kuvasta", + "Saturation": "Värikylläisyys", + "Saturation Range": "Värikylläisyysalue", + "Saturday": "lauantai", + "Save": "Tallenna", + "Save As…": "Tallenna nimellä…", + "Save Color Label Set": "Tallenna värimerkintäjoukko", + "Save Current Filter as Preset…": "Tallenna nykyinen suodatin esiasetuksena…", + "Save Current Keywords as Set…": "Tallenna nykyiset avainsanat joukkona…", + "Save Current Settings as New Effect Preset…": "Tallenna nykyiset asetukset uudeksi tehosteesiasetukseksi…", + "Save Current Settings as New Preset…": "Tallenna nykyiset asetukset uudeksi esiasetukseksi…", + "Save Export Preset": "Tallenna vientiesiasetus", + "Save Filter Preset": "Tallenna suodinesiasetus", + "Save Keyword Set": "Tallenna avainsanajoukko", + "Save Metadata Preset": "Tallenna metatietoesiasetus", + "Save Metadata Preset…": "Tallenna metatietoesiasetus…", + "Save Metadata to File": "Tallenna metatiedot tiedostoon", + "Save Point Curve Preset": "Tallenna pistekäyrän esiasetus", + "Save Point Curve…": "Tallenna pistekäyrä…", + "Save as Preset": "Tallenna esiasetuksena", + "Save as Set…": "Tallenna joukkona…", + "Save as Smart Album…": "Tallenna älyalbumina…", + "Save as Template": "Tallenna mallipohjana", + "Save as a new set": "Tallenna uutena joukkona", + "Save as set": "Tallenna joukkona", + "Save preset": "Tallenna esiasetus", + "Saving Lightroom import index…": "Tallennetaan Lightroom-tuonnin hakemistoa…", + "Scale": "Skaalaus", + "Scan Folder for Changes": "Skannaa kansio muutosten varalta", + "Scan failed": "Skannaus epäonnistui", + "Scanning": "Skannataan", + "Scanning folder": "Skannataan kansiota", + "Scanning…": "Skannataan…", + "Scores stay on the photos: filter or make smart albums with Focus and Best of Similar Shots.": "Pisteet säilyvät kuvissa: suodata tai tee älyalbumeja Tarkennus- ja Paras samankaltaisista otoksista -arvoilla.", + "Screen": "Näyttö", + "Scroll menu down": "Vieritä valikkoa alas", + "Scroll menu up": "Vieritä valikkoa ylös", + "Search": "Haku", + "Search Photos": "Hae kuvia", + "Search albums": "Hae albumeja", + "Search commands or keys": "Hae komentoja tai näppäimiä", + "Search effects": "Hae tehosteita", + "Search…": "Hae…", + "Seasons": "Vuodenajat", + "Second Window": "Toinen ikkuna", + "Select": "Valitse", + "Select All": "Valitse kaikki", + "Select Luminance Range": "Valitse kirkkausalue", + "Select Mask": "Valitse maski", + "Select Only Active Photo": "Valitse vain aktiivinen kuva", + "Select Photos": "Valitse kuvat", + "Select Spot": "Valitse täplä", + "Select a mask to apply or update presets.": "Valitse maski ottaaksesi esiasetuksia käyttöön tai päivittääksesi niitä.", + "Select a photo to edit": "Valitse muokattava kuva", + "Select a photo to preview its slide": "Valitse kuva esikatsellaksesi sen diaa", + "Select a photo, then turn this on to fill the slide behind every photo with it.": "Valitse kuva ja ota tämä käyttöön täyttääksesi sillä dian taustan jokaisen kuvan takana.", + "Select by": "Valitse perusteella", + "Select by Flag, Rating or Label": "Valitse lipun, luokituksen tai merkinnän mukaan", + "Select none": "Älä valitse mitään", + "Select photos to give them keywords.": "Valitse kuvat antaaksesi niille avainsanoja.", + "Select photos, then choose View → Survey (N)": "Valitse kuvat ja valitse sitten Näytä → Vertailu (N)", + "Select two photos, then choose View → Compare (Shift+C)": "Valitse kaksi kuvaa ja valitse sitten Näytä → Vertaa (Shift+C)", + "Selected": "Valittu", + "Selecting…": "Valitaan…", + "Selenium Tone": "Seleenisävy", + "Send Feedback…": "Lähetä palautetta…", + "Separate several keywords with commas. Return gives them to the selected photos.": "Erota useat avainsanat pilkuilla. Return antaa ne valituille kuville.", + "Separated by commas": "Pilkuilla erotettu", + "Sepia Tone": "Seepiasävy", + "Sequence number zero-padded to N digits (1–9)": "Järjestysnumero nollilla täytettynä N numeroon (1–9)", + "Sequence number, counting from the start number": "Järjestysnumero, joka lasketaan aloitusnumerosta", + "Services": "Palvelut", + "Set": "Aseta", + "Set Album Cover": "Aseta albumin kansi", + "Set Before": "Aseta Ennen", + "Set Color Label": "Aseta värimerkintä", + "Set Crop": "Aseta rajaus", + "Set Develop Values": "Aseta kehitysarvot", + "Set Flag": "Aseta lippu", + "Set Folder Color Label": "Aseta kansion värimerkintä", + "Set Image Zoom and Pan": "Aseta kuvan zoomaus ja panorointi", + "Set Keyboard Shortcut": "Aseta pikanäppäin", + "Set Mask Adjustments": "Aseta maskin säädöt", + "Set Point Curve": "Aseta pistekäyrä", + "Set Profile": "Aseta profiili", + "Set Rating": "Aseta luokitus", + "Set Top of Stack": "Aseta pinon päällimmäinen", + "Set as Album Cover": "Aseta albumin kanneksi", + "Set as Before": "Aseta Ennen-kuvaksi", + "Set as Reference Photo": "Aseta vertailukuvaksi", + "Set as Target Album": "Aseta kohdealbumiksi", + "Set as Target Album (B adds to it)": "Aseta kohdealbumiksi (B lisää siihen)", + "Set as Top of Stack": "Aseta pinon päällimmäiseksi", + "Set date & time": "Aseta päivämäärä ja aika", + "Set name": "Aseta nimi", + "Set the mix from the photo's colours": "Aseta sekoitus kuvan väreistä", + "Set up AI Denoise…": "Ota tekoälykohinanpoisto käyttöön…", + "Settings": "Asetukset", + "Settings file problem": "Asetustiedoston ongelma", + "Settings new raw photos start from. Changing them doesn't touch photos already in the library.": "Asetukset, joista uudet raw-kuvat lähtevät liikkeelle. Niiden muuttaminen ei koske kirjastossa jo olevia kuvia.", + "Settings pasted": "Asetukset liitetty", + "Settings to include": "Mukaan otettavat asetukset", + "Settings → Confirm before moving photos to another folder on disk turns it back on": "Asetukset → Vahvista ennen kuvien siirtämistä toiseen kansioon levyllä ottaa sen takaisin käyttöön", + "Settings…": "Asetukset…", + "Shade": "Varjostus", + "Shadow": "Varjo", + "Shadows": "Varjot", + "Shadows Hue": "Varjojen sävy", + "Shadows Luminance": "Varjojen kirkkaus", + "Shadows Saturation": "Varjojen värikylläisyys", + "Shadows Tint": "Varjojen värisävy", + "Shadows split": "Varjojen jako", + "Sharpen": "Terävöitä", + "Sharpening": "Terävöinti", + "Sharpness": "Terävyys", + "Shift": "Siirtymä", + "Shift by": "Siirrä", + "Shooting Data": "Kuvaustiedot", + "Short Edge": "Lyhyt sivu", + "Show": "Näytä", + "Show / hide": "Näytä / piilota", + "Show All": "Näytä kaikki", + "Show All Mask Overlays": "Näytä kaikki maskien peittokuvat", + "Show Clipping": "Näytä leikkautuminen", + "Show Deghost Overlay": "Näytä haamukuvien poiston peittokuva", + "Show Focus Point": "Näytä tarkennuspiste", + "Show Hidden Local Locations": "Näytä piilotetut paikalliset sijainnit", + "Show Layout Image": "Näytä asettelukuva", + "Show Luminance Map": "Näytä kirkkauskartta", + "Show Mask": "Näytä maski", + "Show Mask Overlay": "Näytä maskin peittokuva", + "Show Mask Pins": "Näytä maskin nastat", + "Show Original": "Näytä alkuperäinen", + "Show Person": "Näytä henkilö", + "Show Photo Counts": "Näytä kuvamäärät", + "Show Photos with Keyword": "Näytä kuvat, joilla on avainsana", + "Show Pins": "Näytä nastat", + "Show Sidebar Section": "Näytä sivupalkin osio", + "Show Source": "Näytä lähde", + "Show Thumbnails": "Näytä pikkukuvat", + "Show all overlays": "Näytä kaikki peittokuvat", + "Show commands without a shortcut": "Näytä komennot, joilla ei ole pikanäppäintä", + "Show destination gamut warning": "Näytä kohteen väriavaruuden varoitus", + "Show display gamut warning": "Näytä näytön väriavaruuden varoitus", + "Show every keyword of the selected photos": "Näytä valittujen kuvien kaikki avainsanat", + "Show fewer": "Näytä vähemmän", + "Show file names": "Näytä tiedostonimet", + "Show guides": "Näytä apuviivat", + "Show in Compare": "Näytä Vertailussa", + "Show in Explorer": "Näytä Resurssienhallinnassa", + "Show in File Manager": "Näytä tiedostonhallinnassa", + "Show in Finder": "Näytä Finderissa", + "Show in Library": "Näytä Kirjastossa", + "Show less": "Näytä vähemmän", + "Show mask": "Näytä maski", + "Show on Map": "Näytä kartalla", + "Show overlay (O)": "Näytä peittokuva (O)", + "Show photos": "Näytä kuvat", + "Show ratings, flags and edit badges": "Näytä luokitukset, liput ja muokkausmerkit", + "Show the Navigator while zoomed in": "Näytä Navigaattori zoomattuna", + "Show the import review when a camera or card is connected": "Näytä tuontitarkistus, kun kamera tai kortti liitetään", + "Show the template tags; click one to insert it": "Näytä mallipohjan tunnisteet; napsauta yhtä lisätäksesi sen", + "Show this wheel's effect": "Näytä tämän pyörän vaikutus", + "Show/Hide Mask": "Näytä/piilota maski", + "Show/hide My Photos panel": "Näytä/piilota Omat kuvat -paneeli", + "Shows": "Näyttää", + "Shutter Speed": "Suljinaika", + "Side panels": "Sivupaneelit", + "Sidebar Sections": "Sivupalkin osiot", + "Sidecar names": "Sivutiedostojen nimet", + "Silver": "Hopea", + "Simulate Paper & Ink": "Simuloi paperi ja muste", + "Size": "Koko", + "Size (% of short edge)": "Koko (% lyhyestä sivusta)", + "Size limit": "Kokorajoitus", + "Skip": "Ohita", + "Skipped: files already in the library elsewhere": "Ohitettu: tiedostot, jotka ovat jo kirjastossa muualla", + "Skipped: files that can't be read": "Ohitettu: tiedostot, joita ei voi lukea", + "Sky": "Taivas", + "Slide": "Dia", + "Slide duration": "Dian kesto", + "Slides use the slideshow's layout, overlays and intro and ending screens, in view order.": "Diat käyttävät diaesityksen asettelua, peittokuvia sekä alku- ja lopetusnäyttöjä näkymän järjestyksessä.", + "Slideshow": "Diaesitys", + "Slideshow Options…": "Diaesityksen asetukset…", + "Slideshow Templates": "Diaesitysmallipohjat", + "Slideshow in the View menu plays the photos in view from the selected one. These settings are saved with the library.": "Näytä-valikon Diaesitys toistaa näkymän kuvat valitusta kuvasta alkaen. Nämä asetukset tallennetaan kirjaston mukana.", + "Slideshow paused": "Diaesitys keskeytetty", + "Slideshow resumed": "Diaesitys jatkuu", + "Slideshow · Space pauses · Esc ends": "Diaesitys · Välilyönti keskeyttää · Esc lopettaa", + "Smart Album": "Älyalbumi", + "Smart Album Rule Fields": "Älyalbumin sääntökentät", + "Smart Preview Status": "Älyesikatselun tila", + "Smart Previews Location": "Älyesikatseluiden sijainti", + "Smart albums update automatically: change their rules, or use Photo ▸ Delete Photo": "Älyalbumit päivittyvät automaattisesti: muuta niiden sääntöjä tai käytä Kuva → Poista kuva", + "Smart preview available": "Älyesikatselu saatavilla", + "Smart previews": "Älyesikatselut", + "Smart previews folder changed": "Älyesikatseluiden kansio muuttui", + "Smoothness": "Tasaisuus", + "Soft B&W": "Pehmeä M/V", + "Soft Pastel": "Pehmeä pastelli", + "Soft Proofing": "Vedoksen esikatselu", + "Soft Skin": "Pehmeä iho", + "Solo Mode": "Yksittäistila", + "Some rules need fixing (Edit Smart Album…):": "Joitakin sääntöjä pitää korjata (Muokkaa älyalbumia…):", + "Sort": "Lajittele", + "Sort Albums A–Z": "Lajittele albumit A–Ö", + "Sort Albums by Name": "Lajittele albumit nimen mukaan", + "Sort Contents A–Z": "Lajittele sisältö A–Ö", + "Sort by": "Lajitteluperuste", + "Source": "Lähde", + "Source code on GitHub": "Lähdekoodi GitHubissa", + "Specific folder": "Tietty kansio", + "Speed": "Nopeus", + "Spherical": "Pallomainen", + "Spiral": "Spiraali", + "Split Stack": "Jaa pino", + "Spot": "Täplä", + "Spring Fresh": "Kevään raikkaus", + "Square": "Neliö", + "Square Grid": "Neliöruudukko", + "Square Grid (G toggles)": "Neliöruudukko (G vaihtaa)", + "Square Grid: show file names and formats": "Neliöruudukko: näytä tiedostonimet ja -muodot", + "Stack": "Pino", + "Stack photos taken within this time of each other:": "Pinoa toistensa lähellä tässä ajassa otetut kuvat:", + "Stacks": "Pinot", + "Standard": "Vakio", + "Star rating (0–5)": "Tähtiluokitus (0–5)", + "Start at": "Aloita kohdasta", + "Start number": "Aloitusnumero", + "Starting": "Käynnistyy", + "Starting…": "Käynnistyy…", + "Startup": "Käynnistys", + "State / Province": "Osavaltio / lääni", + "Stop": "Pysäytä", + "Stop Building Previews": "Pysäytä esikatseluiden luonti", + "Stop Using as Target Album": "Lopeta käyttö kohdealbumina", + "Stopped": "Pysäytetty", + "Stopped by an error (see the log)": "Pysäytetty virheeseen (katso loki)", + "Stopping…": "Pysäytetään…", + "Straighten": "Suorista", + "Straighten Tool": "Suoristustyökalu", + "Stroke border": "Reunaviiva", + "Strong Contrast": "Voimakas kontrasti", + "Style": "Tyyli", + "Su": "Su", + "Subfolder": "Alikansio", + "Subfolder name": "Alikansion nimi", + "Subject": "Kohde", + "Subtract": "Vähennä", + "Subtract from this mask": "Vähennä tästä maskista", + "Suggest Names for Faces": "Ehdota nimiä kasvoille", + "Suggestions": "Ehdotukset", + "Suggests who is in a photo from the faces you have named. Everything stays on your computer.": "Ehdottaa, ketkä kuvassa ovat, nimeämiesi kasvojen perusteella. Kaikki pysyy tietokoneellasi.", + "Summer Haze": "Kesän usva", + "Sunday": "sunnuntai", + "Survey": "Vertailu", + "Survey (N)": "Vertailu (N)", + "Swap": "Vaihda", + "Swap Aspect (X)": "Vaihda kuvasuhde (X)", + "Swap Before and After": "Vaihda Ennen ja Jälkeen keskenään", + "Swap Before and After Settings": "Vaihda Ennen- ja Jälkeen-asetukset keskenään", + "Swap Compare Photos": "Vaihda vertailtavat kuvat keskenään", + "Switch light / dark theme": "Vaihda vaalean ja tumman teeman välillä", + "Sync Settings": "Synkronoi asetukset", + "Sync with System": "Seuraa järjestelmää", + "Synchronize": "Synkronoi", + "Synchronize Folder…": "Synkronoi kansio…", + "Synchronizing folder": "Synkronoidaan kansiota", + "Synchronizing…": "Synkronoidaan…", + "Synonyms": "Synonyymit", + "System": "Järjestelmä", + "System Info": "Järjestelmätiedot", + "System Info…": "Järjestelmätiedot…", + "System default": "Järjestelmän oletus", + "Table": "Taulukko", + "Tags": "Tunnisteet", + "Tags: see Tags beside the template. Files are renamed on disk (with their XMP sidecars); existing names get -1, -2…": "Tunnisteet: katso mallipohjan vieressä olevat Tunnisteet. Tiedostot nimetään uudelleen levyllä (XMP-sivutiedostoineen); olemassa olevat nimet saavat lopun -1, -2…", + "Take a snapshot": "Ota tilannevedos", + "Targeted Adjustment": "Kohdistettu säätö", + "Targeted adjustment on: drag up or down on the photo · Esc to stop": "Kohdistettu säätö päällä: vedä kuvassa ylös tai alas · Esc lopettaa", + "Targeted adjustment: drag up/down on the photo to adjust the colours there": "Kohdistettu säätö: vedä kuvassa ylös/alas säätääksesi siellä olevia värejä", + "Targeted adjustment: drag up/down on the photo to adjust the curve there": "Kohdistettu säätö: vedä kuvassa ylös/alas säätääksesi käyrää siinä kohdassa", + "Teal & Amber": "Petrooli ja meripihka", + "Teal & Orange": "Petrooli ja oranssi", + "Temp": "Lämpötila", + "Temperature": "Lämpötila", + "Template": "Mallipohja", + "Template name": "Mallipohjan nimi", + "Templates": "Mallipohjat", + "Temporary session — your library isn't open, and nothing you do here is saved.": "Väliaikainen istunto — kirjastoasi ei ole avattu, eikä täällä tekemääsi tallenneta.", + "Test Denoise Model": "Testaa kohinanpoistomalli", + "Test Face Model": "Testaa kasvomalli", + "Tested and works on this computer": "Testattu ja toimii tällä tietokoneella", + "Text": "Teksti", + "Text direction": "Tekstin suunta", + "Text overlays": "Tekstipeittokuvat", + "Texture": "Tekstuuri", + "Th": "To", + "That includes the photos in the folders inside it.": "Tämä sisältää myös sen sisällä olevien kansioiden kuvat.", + "That key can't be used as a shortcut": "Tätä näppäintä ei voi käyttää pikanäppäimenä", + "The SAM 3 model is installed: Object and Describe masks are ready.": "SAM 3 -malli on asennettu: Kohde- ja Kuvaile-maskit ovat valmiita.", + "The denoise model is installed and in use: the AI Denoise Amount slider under Detail now works": "Kohinanpoistomalli on asennettu ja käytössä: Tekoälykohinanpoiston Määrä-liukusäädin Tarkastelun alla toimii nyt", + "The download didn't work:": "Lataus ei onnistunut:", + "The ending screen, after the last photo.": "Lopetusnäyttö viimeisen kuvan jälkeen.", + "The export watermark, drawn on the photo and sized relative to it.": "Viennin vesileima, piirretty kuvan päälle ja mitoitettu sen mukaan.", + "The first time, macOS asks whether LightCraft may control Photos.": "Ensimmäisellä kerralla macOS kysyy, saako LightCraft ohjata Kuvia-sovellusta.", + "The graphics card is set up when the next photo is made.": "Näytönohjain otetaan käyttöön, kun seuraava kuva muodostetaan.", + "The import reads the catalog without changing it and adds its photos, edits, keywords and collections to the library open now.": "Tuonti lukee katalogin muuttamatta sitä ja lisää sen kuvat, muokkaukset, avainsanat ja kokoelmat nyt avoinna olevaan kirjastoon.", + "The intro plays once before the first photo; the ending after the last photo when Repeat is off. The identity plate is the one set under Overlays. Titles fade like slides and random order never moves them.": "Alkunäyttö esitetään kerran ennen ensimmäistä kuvaa; lopetusnäyttö viimeisen kuvan jälkeen, kun Toisto on pois päältä. Tunnuslaatta on se, joka on asetettu kohdassa Peittokuvat. Otsikot häivytetään kuten diat, eikä satunnainen järjestys koskaan siirrä niitä.", + "The intro screen, before the first photo.": "Alkunäyttö ennen ensimmäistä kuvaa.", + "The layout image can't be shown": "Asettelukuvaa ei voi näyttää", + "The library is up to date with this folder.": "Kirjasto on ajan tasalla tämän kansion kanssa.", + "The model is kept on this computer only. LightCraft never uploads or shares it.": "Malli säilytetään vain tällä tietokoneella. LightCraft ei koskaan lähetä tai jaa sitä.", + "The number at the end of the original name (IMG_0042 → 0042)": "Alkuperäisen nimen lopussa oleva numero (IMG_0042 → 0042)", + "The original extension is always added; {ext} only puts it inside the name as well.": "Alkuperäinen tiedostopääte lisätään aina; {ext} vain sijoittaa sen myös nimen sisään.", + "The original files, unchanged, each with an XMP sidecar holding its edits.": "Alkuperäiset tiedostot muuttumattomina, kullakin XMP-sivutiedosto, joka sisältää sen muokkaukset.", + "The photo has these settings": "Kuvalla on nämä asetukset", + "The photos in view as slides, with the settings above. Progress shows in the activity stack.": "Näkymän kuvat dioina yllä olevilla asetuksilla. Edistyminen näkyy toimintapinossa.", + "The processor does the work.": "Suoritin tekee työn.", + "The selected photo as a slide. Playback fills the screen; the aspect preview only changes this preview.": "Valittu kuva diana. Toisto täyttää näytön; kuvasuhteen esikatselu muuttaa vain tätä esikatselua.", + "Their files and XMP sidecars move on disk. Edit → Undo moves them back.": "Niiden tiedostot ja XMP-sivutiedostot siirtyvät levyllä. Muokkaa → Kumoa siirtää ne takaisin.", + "Their photos and the keywords below them come together under one keyword.": "Niiden kuvat ja niiden alla olevat avainsanat yhdistyvät yhden avainsanan alle.", + "Their photos in the grid": "Niiden kuvat ruudukossa", + "Theme": "Teema", + "There is no model file to install": "Asennettavaa mallitiedostoa ei ole", + "These photos are only in memory. Open a library on disk and import the catalog again to save them.": "Nämä kuvat ovat vain muistissa. Avaa levyllä oleva kirjasto ja tuo katalogi uudelleen tallentaaksesi ne.", + "They can be restored from Recently Deleted until it is emptied.": "Ne voi palauttaa Äskettäin poistetuista, kunnes se tyhjennetään.", + "They move to Recently Deleted and can be restored; no file on disk is touched.": "Ne siirtyvät Äskettäin poistettuihin ja ne voi palauttaa; levyllä oleviin tiedostoihin ei kosketa.", + "Thirds": "Kolmasosat", + "This Computer": "Tämä tietokone", + "This build can't download the model yet. To install it by hand, put model.safetensors, vocab.json and merges.txt from Meta's facebook/sam3 in the folder above: Object and Describe work as soon as they are there.": "Tämä versio ei vielä voi ladata mallia. Asentaaksesi sen käsin laita Metan facebook/sam3-mallin tiedostot model.safetensors, vocab.json ja merges.txt yllä olevaan kansioon: Kohde ja Kuvaile toimivat heti, kun ne ovat siellä.", + "This build cannot run denoise models.": "Tämä versio ei voi ajaa kohinanpoistomalleja.", + "This build cannot run recognition models: they can be added and chosen, not used.": "Tämä versio ei voi ajaa tunnistusmalleja: ne voi lisätä ja valita, mutta ei käyttää.", + "This build has nowhere to keep denoise models, so AI Denoise is not available. (The desktop app has.)": "Tällä versiolla ei ole paikkaa kohinanpoistomalleille, joten tekoälykohinanpoisto ei ole käytettävissä. (Työpöytäsovelluksessa on.)", + "This build has nowhere to keep face models, so the model list is not available. (The desktop app has.)": "Tällä versiolla ei ole paikkaa kasvomalleille, joten malliluettelo ei ole käytettävissä. (Työpöytäsovelluksessa on.)", + "This file cannot be used yet": "Tätä tiedostoa ei voi vielä käyttää", + "This folder is not available (drive disconnected?). Smart previews are not built or used until it is back or you choose another folder.": "Tämä kansio ei ole käytettävissä (asema irrotettu?). Älyesikatseluita ei luoda eikä käytetä, ennen kuin se on takaisin tai valitset toisen kansion.", + "This folder isn't there: it was moved or renamed, or its disk isn't connected.": "Kansiota ei ole siellä: se siirrettiin tai nimettiin uudelleen, tai sen levy ei ole kytkettynä.", + "This group is empty: add a rule or remove it.": "Tämä ryhmä on tyhjä: lisää sääntö tai poista se.", + "This is a Lightroom catalog, not a LightCraft library. Import it into a LightCraft library instead?": "Tämä on Lightroom-katalogi, ei LightCraft-kirjasto. Tuodaanko se sen sijaan LightCraft-kirjastoon?", + "This is the album you're editing": "Tämä on albumi, jota muokkaat", + "This page setup is not valid": "Tämä sivuasetus ei kelpaa", + "This photo can't be opened": "Tätä kuvaa ei voi avata", + "This raw is now developed from its raw data": "Tämä raw kehitetään nyt raakadatastaan", + "This raw variant still can't be decoded": "Tätä raw-muunnelmaa ei vieläkään voi purkaa", + "This row covers more than one disk: drop on a folder inside it": "Tämä rivi kattaa useamman kuin yhden levyn: pudota sen sisällä olevaan kansioon", + "This screen is off: turn it on under Titles to play it.": "Tämä näyttö on pois päältä: ota se käyttöön kohdassa Otsikot toistaaksesi sen.", + "Threshold": "Kynnys", + "Thumbnail cache": "Pikkukuvien välimuisti", + "Thumbnail size": "Pikkukuvien koko", + "Thursday": "torstai", + "Tick the box to accept the model's terms first": "Hyväksy ensin mallin ehdot valitsemalla ruutu", + "Tidying the thumbnail cache": "Siivotaan pikkukuvien välimuistia", + "Time zone": "Aikavyöhyke", + "Tint": "Värisävy", + "Title": "Otsikko", + "Title bar": "Otsikkopalkki", + "Title metadata": "Otsikon metatiedot", + "Title text": "Otsikkoteksti", + "Titles": "Otsikot", + "To hand this editor the original file itself instead (the raw, without a copy: DxO PhotoLab, for example), right-click a photo → Edit In → Open Original in Other Editor (RAW, no copy).": "Antaaksesi tälle muokkausohjelmalle alkuperäisen tiedoston itsensä (raw ilman kopiota, esimerkiksi DxO PhotoLab) napsauta kuvaa hiiren kakkospainikkeella → Muokkaa ohjelmassa → Avaa alkuperäinen toisessa muokkausohjelmassa (RAW, ei kopiota).", + "Toggle Keyword from Set": "Vaihda avainsana joukosta", + "Toggle Mask": "Vaihda maski", + "Toggle Section": "Vaihda osio", + "Toggle Zoom": "Vaihda zoomaus", + "Tokens: {file}, {name}, {title}, {caption}, {date}, {exposure}, {iso}, {focal}, {camera}, {lens}, {rating}, {creator}, {copyright}. Other text shows as typed.": "Tunnisteet: {file}, {name}, {title}, {caption}, {date}, {exposure}, {iso}, {focal}, {camera}, {lens}, {rating}, {creator}, {copyright}. Muu teksti näkyy sellaisenaan.", + "Tone Curve": "Sävykäyrä", + "Tool Overlay": "Työkalun peittokuva", + "Tools": "Työkalut", + "Top": "Yläreuna", + "Top Level": "Ylin taso", + "Tracking": "Seuranta", + "Transfer": "Siirto", + "Treatment": "Käsittely", + "Triangle": "Kolmio", + "Try Again": "Yritä uudelleen", + "Try Saving Again": "Yritä tallentaa uudelleen", + "Try again": "Yritä uudelleen", + "Try the graphics card again": "Kokeile näytönohjainta uudelleen", + "Tu": "Ti", + "Tuesday": "tiistai", + "Tungsten": "Hehkulamppu", + "Turn Off": "Poista käytöstä", + "Turn off": "Poista käytöstä", + "Turn on Include subfolders, or pick another folder under Local": "Ota Sisällytä alikansiot käyttöön tai valitse toinen kansio kohdasta Paikallinen", + "Type": "Tyyppi", + "Uncheck All": "Poista kaikkien valinta", + "Uncheck the files of this type": "Poista tämän tyyppisten tiedostojen valinta", + "Undo": "Kumoa", + "Unedited": "Muokkaamaton", + "Unedited raws": "Muokkaamattomat raw-kuvat", + "Unflag": "Poista lippu", + "Unflagged": "Ei lippua", + "Ungroup Stack": "Pura pino", + "Ungrouped": "Ryhmittelemättömät", + "Unknown": "Tuntematon", + "Unknown Date": "Tuntematon päivämäärä", + "Unknown date": "Tuntematon päivämäärä", + "Unknown licence": "Tuntematon lisenssi", + "Unknown tags stay as typed — check the preview for a {typo}.": "Tuntemattomat tunnisteet pysyvät sellaisinaan — tarkista esikatselusta {typo}.", + "Unnamed Faces": "Nimeämättömät kasvot", + "Unnamed face": "Nimeämätön kasvo", + "Unrated": "Luokittelematon", + "Unreadable": "Lukukelvoton", + "Update": "Päivitä", + "Update Mask Shape": "Päivitä maskin muoto", + "Update Preset with Current Settings": "Päivitä esiasetus nykyisillä asetuksilla", + "Update Rules from Current Filter": "Päivitä säännöt nykyisestä suodattimesta", + "Update Version": "Päivitä versio", + "Update Version with Current Settings": "Päivitä versio nykyisillä asetuksilla", + "Update to Current Process": "Päivitä nykyiseen prosessiin", + "Update with Current Settings": "Päivitä nykyisillä asetuksilla", + "Updated the edits saved in the external editor": "Ulkoisessa muokkausohjelmassa tallennetut muokkaukset päivitetty", + "Upright": "Upright", + "Urban": "Urbaani", + "Use": "Käytä", + "Use Keyword Set": "Käytä avainsanajoukkoa", + "Use Library Folder": "Käytä kirjastokansiota", + "Use Screen Profile": "Käytä näytön profiilia", + "Use camera-specific defaults": "Käytä kamerakohtaisia oletuksia", + "Use export watermark": "Käytä vientivesileimaa", + "Use sRGB": "Käytä sRGB:tä", + "Use selected photo": "Käytä valittua kuvaa", + "Use the GPU for rendering": "Käytä GPU:ta renderöintiin", + "User Presets": "Käyttäjän esiasetukset", + "Username": "Käyttäjänimi", + "Value": "Arvo", + "Variance": "Vaihtelu", + "Version": "Versio", + "Version name": "Version nimi", + "Versions": "Versiot", + "Versions (Shift+V)": "Versiot (Shift+V)", + "Vertical": "Pysty", + "Vertical inset (% of short edge)": "Pystysuuntainen sisennys (% lyhyestä sivusta)", + "Vertical text": "Pystysuuntainen teksti", + "Vibrance": "Eloisuus", + "Video": "Video", + "Video Duration": "Videon kesto", + "Videos": "Videot", + "View": "Näytä", + "Viewers that don't read the PNG cICP chunk show PQ values as sRGB: flat and washed out. For a picture that looks right everywhere, use JPEG (gain map).": "Katseluohjelmat, jotka eivät lue PNG:n cICP-lohkoa, näyttävät PQ-arvot sRGB:nä: latteina ja haaleina. Jos haluat kuvan, joka näyttää oikealta kaikkialla, käytä JPEG-muotoa (vahvistuskartta).", + "Vignette": "Vinjetti", + "Vignetting": "Vinjetointi", + "Vintage": "Vintage", + "Virtual Copy": "Virtuaalikopio", + "Visible": "Näkyvä", + "Visualize HDR": "Havainnollista HDR", + "Visualize Spots": "Havainnollista täplät", + "Visualize Spots (A)": "Havainnollista täplät (A)", + "Visualize range": "Havainnollista alue", + "Vivid": "Eloisa", + "Vivid Pop": "Eloisa pop", + "Wait for the import to finish": "Odota tuonnin valmistumista", + "Waiting to start…": "Odotetaan käynnistymistä…", + "Warm Film": "Lämmin filmi", + "Warm Glow": "Lämmin hehku", + "Warm Print": "Lämmin vedos", + "Warm Table": "Lämmin pöytä", + "Watched folder": "Tarkkailtu kansio", + "Watermark": "Vesileima", + "We": "Ke", + "Wednesday": "keskiviikko", + "What's New": "Mitä uutta", + "When pins show on the photo (Shift+H cycles)": "Milloin nastat näkyvät kuvassa (Shift+H vaihtaa)", + "When rated or hovered": "Luokiteltaessa tai osoitettaessa", + "White Balance": "Valkotasapaino", + "White Balance Selector": "Valkotasapainon valitsin", + "White Balance Selector (W)": "Valkotasapainon valitsin (W)", + "White on Black": "Valkoinen mustalla", + "Whites": "Valkoiset", + "Whole names": "Kokonaiset nimet", + "Wide": "Leveä", + "Width": "Leveys", + "Width (% of photo)": "Leveys (% kuvasta)", + "Width (px)": "Leveys (px)", + "Width × Height": "Leveys × korkeus", + "Will Export": "Viedään", + "Will be replaced": "Korvataan", + "Will be restored": "Palautetaan", + "Window": "Ikkuna", + "Winter Blue": "Talvensininen", + "Works on raw files from cameras with a standard (Bayer) sensor. Other files keep their normal noise reduction.": "Toimii raw-tiedostoilla kameroista, joissa on tavallinen (Bayer) -anturi. Muut tiedostot säilyttävät tavallisen kohinanpoistonsa.", + "Wrote the XMP sidecars that were waiting": "Odottaneet XMP-sivutiedostot kirjoitettu", + "XMP Sidecar Preferences": "XMP-sivutiedostojen asetukset", + "XMP sidecars": "XMP-sivutiedostot", + "Year": "Vuosi", + "Yellow": "Keltainen", + "Yellow Hue": "Keltaisen sävy", + "Yellow Luminance": "Keltaisen kirkkaus", + "Yellow Saturation": "Keltaisen värikylläisyys", + "Yellow label": "Keltainen merkintä", + "Yes": "Kyllä", + "You can close this: the download continues, and resumes if interrupted.": "Voit sulkea tämän: lataus jatkuu ja palaa käyntiin, jos se keskeytyy.", + "Your Name": "Nimesi", + "Your library couldn't be opened": "Kirjastoasi ei voitu avata", + "Your library is empty": "Kirjastosi on tyhjä", + "Your name or studio": "Nimesi tai studiosi", + "Your own templates need a settings folder, which this build doesn't have; the built-in ones work.": "Omat mallipohjasi tarvitsevat asetuskansion, jota tässä versiossa ei ole; sisäänrakennetut toimivat.", + "Your templates": "Omat mallipohjasi", + "Zone": "Alue", + "Zoom": "Zoomaus", + "Zoom 100%": "Zoomaus 100 %", + "Zoom In": "Lähennä", + "Zoom Out": "Loitonna", + "Zoom to Fit": "Zoomaa sovittamaan", + "Zoom to Focus Point": "Zoomaa tarkennuspisteeseen", + "Zoom to fill frame": "Zoomaa täyttämään kehys", + "Zoom to page level": "Zoomaa sivun tasolle", + "a literal %": "kirjaimellinen %", + "a removed photo": "poistettu kuva", + "and": "ja", + "any": "mikä tahansa", + "are empty": "ovat tyhjiä", + "aren't empty": "eivät ole tyhjiä", + "cached picture": "välimuistissa oleva kuva", + "cached pictures": "välimuistissa olevaa kuvaa", + "can't be tested that way": "ei voi testata sillä tavalla", + "can't match any rating from 0 to 5": "ei voi vastata mitään luokitusta 0–5", + "can't test a folder; choose an album in it": "kansiota ei voi testata; valitse sen sisältä albumi", + "cells overlap": "solut menevät päällekkäin", + "comma, separated": "pilkuilla, erotettu", + "commercial use allowed": "kaupallinen käyttö sallittu", + "commercial use subject to GPL conditions": "kaupallinen käyttö GPL-ehtojen mukaan", + "contains": "sisältää", + "day 01–31": "päivä 01–31", + "days": "päivää", + "doesn't contain": "ei sisällä", + "e.g. sky · the red car · car, road": "esim. taivas · punainen auto · auto, tie", + "ends with": "päättyy", + "false": "epätosi", + "has the first date after the second": "ensimmäinen päivämäärä on toisen jälkeen", + "hour 00–23": "tunti 00–23", + "in use": "käytössä", + "includes the folders inside it": "sisältää sen sisällä olevat kansiot", + "installed": "asennettu", + "is": "on", + "is <": "on <", + "is >": "on >", + "is after": "on jälkeen", + "is before": "on ennen", + "is between": "on välillä", + "is empty": "on tyhjä", + "is in the last": "on viimeisen", + "is unknown": "on tuntematon", + "is yes or no": "on kyllä tai ei", + "is ≤": "on ≤", + "is ≥": "on ≥", + "isn't": "ei ole", + "isn't a field rules know": "ei ole kenttä, jonka säännöt tuntevat", + "isn't empty": "ei ole tyhjä", + "isn't in the last": "ei ole viimeisen", + "isn't one of the choices": "ei ole yksi vaihtoehdoista", + "keep names — or e.g. {date}_{seq:3}": "säilytä nimet — tai esim. {date}_{seq:3}", + "latitude, longitude": "leveysaste, pituusaste", + "makes AI Denoise available": "tekee tekoälykohinanpoiston käytettäväksi", + "memory only": "vain muisti", + "minute": "minuutti", + "month 01–12": "kuukausi 01–12", + "months": "kuukautta", + "names an album that no longer exists": "nimeää albumin, jota ei enää ole", + "needs a date like 2026, 2026-08 or 2026-08-14": "tarvitsee päivämäärän, kuten 2026, 2026-08 tai 2026-08-14", + "needs a number": "tarvitsee numeron", + "needs a number more than 0": "tarvitsee nollaa suuremman numeron", + "needs a time like 1/250 or 2": "tarvitsee ajan, kuten 1/250 tai 2", + "needs an album": "tarvitsee albumin", + "needs hours, days, weeks, months or years": "tarvitsee tunteja, päiviä, viikkoja, kuukausia tai vuosia", + "needs something to look for (or use “are empty”)": "tarvitsee jotain haettavaa (tai käytä ”ovat tyhjiä”)", + "needs something to look for (or use “aren't empty”)": "tarvitsee jotain haettavaa (tai käytä ”eivät ole tyhjiä”)", + "needs something to look for (or use “is empty”)": "tarvitsee jotain haettavaa (tai käytä ”on tyhjä”)", + "needs something to look for (or use “isn't empty”)": "tarvitsee jotain haettavaa (tai käytä ”ei ole tyhjä”)", + "needs text": "tarvitsee tekstiä", + "needs two values": "tarvitsee kaksi arvoa", + "new keyword": "uusi avainsana", + "non-commercial use only": "vain ei-kaupalliseen käyttöön", + "none": "ei mitään", + "none (CPU rendering)": "ei mitään (suoritinrenderöinti)", + "none of": "ei mikään seuraavista", + "not added to Apple Photos (cancelled)": "ei lisätty Apple Kuviin (peruttu)", + "not available here": "ei käytettävissä täällä", + "of the following rules:": "seuraavista säännöistä:", + "or": "tai", + "or drop a .onnx file on the window": "tai pudota .onnx-tiedosto ikkunaan", + "or drop photos and folders into this window": "tai pudota kuvia ja kansioita tähän ikkunaan", + "or drop photos into this window": "tai pudota kuvia tähän ikkunaan", + "photo has its denoised picture.": "kuvalla on kohinanpoistettu kuvansa.", + "photo waiting": "kuva odottaa", + "photos have their denoised picture.": "kuvilla on kohinanpoistetut kuvansa.", + "photos waiting": "kuvaa odottaa", + "saved in": "tallennettu kohteeseen", + "second": "sekunti", + "starts using it for AI Denoise": "alkaa käyttää sitä tekoälykohinanpoistoon", + "starts with": "alkaa", + "terms unclear": "ehdot epäselvät", + "the graphics card": "näytönohjain", + "the graphics card is not used": "näytönohjainta ei käytetä", + "the photos in view": "näkymän kuvat", + "the selected photos": "valitut kuvat", + "this photo": "tämä kuva", + "this screen's profile": "tämän näytön profiili", + "true": "tosi", + "weeks": "viikkoa", + "would make this album include itself through other smart albums": "saisi tämän albumin sisältämään itsensä muiden älyalbumien kautta", + "year, 2 digits": "vuosi, 2 numeroa", + "year, 4 digits": "vuosi, 4 numeroa", + "years": "vuotta", + "{date} is the capture time; a photo without one uses the time it was imported.": "{date} on kuvausaika; kuvalla, jolla sitä ei ole, käytetään tuontiaikaa.", + "© 2026 Your Name": "© 2026 Nimesi", + "© Your Name": "© Nimesi", + "− harder border · + softer border": "− terävämpi reuna · + pehmeämpi reuna", + "≤ at most": "≤ enintään", + "≥ at least": "≥ vähintään", + "★ Favorites": "★ Suosikit" +} diff --git a/crates/ui-egui/src/i18n.rs b/crates/ui-egui/src/i18n.rs index ed7ad602e..ff34e68d7 100644 --- a/crates/ui-egui/src/i18n.rs +++ b/crates/ui-egui/src/i18n.rs @@ -130,6 +130,7 @@ language_table! { Cs, "cs", "Čeština", "Latn", include_str!("../locales/cs.json"); It, "it", "Italiano", "Latn", include_str!("../locales/it.json"); Ka, "ka", "ქართული", "Geor", include_str!("../locales/ka.json"); + Fi, "fi", "Suomi", "Latn", include_str!("../locales/fi.json"); } // The settings file stores the BCP-47 code (`"zh-hans"`), never the Rust variant name, so a @@ -790,6 +791,7 @@ mod tests { ("app.language.czech", Locale::Cs), ("app.language.italian", Locale::It), ("app.language.georgian", Locale::Ka), + ("app.language.finnish", Locale::Fi), ]; // One command per language, and every command reachable from the menu table. assert_eq!(commands.len(), Locale::ALL.len()); @@ -1172,6 +1174,110 @@ mod tests { set_language(Locale::En); } + /// Finnish's coverage of every catalog message and display label, reported like Italian's. + #[test] + fn finnish_coverage_of_catalogs_commands_controls_and_rules_is_reported() { + let catalog = Locale::Fi.catalog(); + let keys: std::collections::BTreeSet<&String> = Locale::ALL.iter().flat_map(|language| language.catalog().keys()).collect(); + let lacking: Vec<_> = keys.into_iter().filter(|key| !catalog.contains_key(key.as_str())).collect(); + if !lacking.is_empty() { + eprintln!("fi lacks {} catalog message(s) (shown in English): {lacking:?}", lacking.len()); + } + let mut labels: Vec<&str> = lightcraft_engine::command_specs().iter().map(|spec| spec.label).collect(); + labels.extend(crate::menus::ui_commands().map(|command| command.1).filter(|label| !Locale::ALL.iter().any(|locale| locale.name() == *label))); + labels.extend(lightcraft_develop::CONTROLS.iter().map(|control| control.label)); + labels.extend(crate::panels::settings::TABS.iter().map(|(_, label)| *label)); + for (_, label, kind) in lightcraft_catalog::rules::FIELDS { + labels.push(label); + labels.extend(lightcraft_catalog::rules::ops_for(*kind).iter().map(|(_, label)| *label)); + } + labels.extend(lightcraft_engine::rename::TOKENS.iter().map(|token| token.meaning)); + labels.extend(lightcraft_engine::rename::TEMPLATE_NOTES); + let missing: Vec<_> = labels.into_iter().filter(|label| !catalog.contains_key(*label)).collect(); + if !missing.is_empty() { + eprintln!("fi lacks {} display label(s) (shown in English): {missing:?}", missing.len()); + } + } + + #[test] + fn finnish_switches_persists_formats_dates_and_preserves_values() { + use crate::control::{ControlRequest, Outcome}; + let mut app = crate::LightcraftApp::new(lightcraft_engine::Session::with_demo(), Default::default()); + app.run("app.language.finnish", serde_json::json!({})).unwrap(); + assert_eq!(app.ui.language, Locale::Fi); + assert_eq!(crate::menubar::checked(&app, "app.language.finnish"), Some(true)); + assert_eq!(tr("Light"), "Valo"); + assert_eq!(tr("Landscape"), "Maisema"); + assert_eq!(tr("Home"), "Kotikansio"); + // Finnish dates have no leading zeros and a lower-case weekday; times are 24-hour with colons. + assert_eq!(date_group_label("2026-09-20", false), "sunnuntai 20.9.2026"); + assert_eq!(date_group_label("2026-09-20", true), "sunnuntai 20."); + assert_eq!(date_group_label("2026-09", false), "9/2026"); + assert_eq!(date_group_label("2026-09", true), "9"); + assert_eq!(date_group_label("2026", false), "2026"); + assert_eq!(display_time("2026-09-20T16:04:05"), "sunnuntai 20.9.2026 16:04:05"); + // A noun after a numeral is in the partitive singular (1 kuva, 2 kuvaa), which the English + // plural suffix cannot choose, so counts follow a label; the suffix is consumed and never shows. + for n in [0, 1, 2, 5, 11, 21, 22, 25, 111] { + assert_eq!(tr_format!("Imported {} photo{}", n, if n == 1 { "" } else { "s" }), format!("Tuotuja kuvia: {n}")); + assert_eq!(tr_format!("{} files and {f} folder{}", n, "s", f = n), format!("Tiedostoja: {n}, kansioita: {n}")); + let noun = tr(if n == 1 { "cached picture" } else { "cached pictures" }); + let expected = if n == 1 { "1 välimuistissa oleva kuva".to_string() } else { format!("{n} välimuistissa olevaa kuvaa") }; + assert_eq!(tr_format!("{n} {noun}", n = n, noun = noun), expected); + } + // This trailing argument is queue progress, not an English plural suffix. + let queued = tr_format!(" · {queued} waiting", queued = 5); + assert_eq!( + tr_format!("Denoising {name}: {done} of {total} tiles{}", queued, name = "IMG.CR3", done = 1, total = 4), + "Kohinanpoisto IMG.CR3: 1 / 4 ruutua · odottaa: 5" + ); + let name = "Color {title} 日本語"; + assert_eq!(tr_format!("Added {n} photo{} to “{}”", "s", name, n = 22), format!("Lisättyjä kuvia kohteeseen ”{name}”: 22")); + assert_eq!(builtin_label("Warm Glow", false), "Warm Glow"); + assert_eq!(builtin_label("Warm Glow", true), "Lämmin hehku"); + assert_eq!(tr("photo-{title}.jpg"), "photo-{title}.jpg"); + assert_eq!(tr("develop.set"), "develop.set"); + let saved = serde_json::to_string(&app.ui).unwrap(); + assert!(saved.contains(r#""language":"fi""#)); + assert_eq!(serde_json::from_str::(&saved).unwrap().language, Locale::Fi); + let ctx = egui::Context::default(); + for code in ["fi", "fi-FI", "fi_FI.UTF-8", "fi-Latn-FI"] { + assert_eq!(Locale::parse_tag(code), Some(Locale::Fi)); + let (request, _) = ControlRequest::new("ui.set", serde_json::json!({"language": code})); + let Outcome::Done(reply) = crate::control::handle(&mut app, &ctx, &request) else { panic!("expected reply") }; + assert_eq!(reply["ok"], true); + assert_eq!(language(), Locale::Fi); + } + set_language(Locale::En); + } + + #[test] + fn finnish_panels_dialogs_and_letters_paint_with_bundled_fonts() { + let ctx = fonts_ctx(&[]); + let mut app = crate::LightcraftApp::new(lightcraft_engine::Session::with_demo(), Default::default()); + app.ui.left_panel = true; + let text = painted_text(&ctx, &mut app, Locale::Fi); + assert!(text.contains("Omat kuvat") && text.contains("Kaikki kuvat"), "{text}"); + for (command, title) in [("app.about", "Tietoja LightCraftista"), ("app.shortcuts", "Pikanäppäimet"), ("app.settings", "Asetukset")] { + app.ui.dialog = None; + app.run(command, serde_json::json!({})).unwrap(); + let text = painted_text(&ctx, &mut app, Locale::Fi); + assert!(text.contains(title), "{command}: {text}"); + } + ctx.fonts_mut(|fonts| { + for family in [egui::FontFamily::Proportional, egui::FontFamily::Name(crate::theme::FONT_SEMIBOLD.into())] { + let font = egui::FontId::new(13.0, family); + for ch in "äöåÄÖÅ”–" + .chars() + .chain(Locale::Fi.catalog().values().flat_map(|text| text.chars()).filter(|ch| ('\u{00c0}'..='\u{017f}').contains(ch))) + { + assert!(fonts.has_glyph(&font, ch), "missing Finnish glyph {ch}"); + } + } + }); + set_language(Locale::En); + } + /// Every command, control, rule and rename label, and every line of What's New, is a message a /// catalog can translate. What a language lacks is reported, not failed (like /// `catalogs_agree_on_placeholders_and_report_gaps`): a feature PR doesn't have to ship every @@ -1313,7 +1419,7 @@ mod tests { } #[test] - fn german_ukrainian_and_italian_buttons_fit_the_bottom_bar_and_export_dialog() { + fn german_ukrainian_italian_and_finnish_buttons_fit_the_bottom_bar_and_export_dialog() { fn collect(shape: &egui::epaint::Shape, bounds: &mut Vec<(String, egui::Rect)>) { match shape { egui::epaint::Shape::Text(shape) => { @@ -1323,7 +1429,7 @@ mod tests { _ => {} } } - for language in [Locale::De, Locale::Uk, Locale::It] { + for language in [Locale::De, Locale::Uk, Locale::It, Locale::Fi] { let ctx = fonts_ctx(&[]); let services = crate::Services { pick_folder: Some(Box::new(|| None)), ..Default::default() }; let mut app = crate::LightcraftApp::new(lightcraft_engine::Session::with_demo(), services); diff --git a/crates/ui-egui/src/menus.rs b/crates/ui-egui/src/menus.rs index 743bd4600..18e423335 100644 --- a/crates/ui-egui/src/menus.rs +++ b/crates/ui-egui/src/menus.rs @@ -28,6 +28,7 @@ pub const LANGUAGE_COMMANDS: &[UiCommand] = &[ ("app.language.czech", crate::i18n::Locale::Cs.name(), None, "Edit>Language"), ("app.language.italian", crate::i18n::Locale::It.name(), None, "Edit>Language"), ("app.language.georgian", crate::i18n::Locale::Ka.name(), None, "Edit>Language"), + ("app.language.finnish", crate::i18n::Locale::Fi.name(), None, "Edit>Language"), ]; /// Every UI command: the languages, then everything else. `xtask parity` reads both tables from @@ -54,6 +55,7 @@ pub fn language_from_command(id: &str) -> Option { "app.language.czech" => Some(crate::i18n::Locale::Cs), "app.language.italian" => Some(crate::i18n::Locale::It), "app.language.georgian" => Some(crate::i18n::Locale::Ka), + "app.language.finnish" => Some(crate::i18n::Locale::Fi), _ => None, } } diff --git a/crates/ui-egui/src/panels/keyword_list.rs b/crates/ui-egui/src/panels/keyword_list.rs index d42aa1ff5..8869d1cb6 100644 --- a/crates/ui-egui/src/panels/keyword_list.rs +++ b/crates/ui-egui/src/panels/keyword_list.rs @@ -621,13 +621,13 @@ mod tests { "Export Keywords…", ]; let dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("locales"); - for code in ["de", "es", "fr", "pt-br", "ru", "uk", "it", "ka", "ja", "zh-hans", "zh-hant", "pl", "cs"] { + for code in ["de", "es", "fr", "pt-br", "ru", "uk", "it", "ka", "ja", "zh-hans", "zh-hant", "pl", "cs", "fi"] { let text = std::fs::read_to_string(dir.join(format!("{code}.json"))).unwrap(); let catalog: std::collections::HashMap = serde_json::from_str(&text).unwrap(); for label in labels { assert!(catalog.contains_key(label), "{code}: “{label}”"); } } - assert_eq!(Locale::ALL.len(), 14, "a language added: list its file above"); + assert_eq!(Locale::ALL.len(), 15, "a language added: list its file above"); } } diff --git a/docs/localization-fi.md b/docs/localization-fi.md new file mode 100644 index 000000000..d80a2e1cc --- /dev/null +++ b/docs/localization-fi.md @@ -0,0 +1,62 @@ +# Suomi + +Suomen (`fi`, englanniksi **Finnish**, omakielinen nimi **Suomi**) saa käyttöön valitsemalla +**Muokkaa → Kieli → Suomi** tai **Asetukset → Yleiset → Kieli**. Muutos tulee voimaan heti ja +tallentuu seuraavaa käynnistystä varten. Komento on `app.language.finnish`; ohjauskanava +hyväksyy `ui.set {"language":"fi"}` sekä tunnisteet `fi-FI` ja `fi_FI.UTF-8`. Ikkunattomassa +ajossa voi käyttää `LIGHTCRAFT_LANGUAGE=fi`. + +Luettelot `crates/ui-egui/locales/fi.json` ja `fi-formats.json` on laadittu tekoälyavusteisesti +(Claude) englanninkielisten lähdemerkkijonojen merkityksestä, kokonaisina fraaseina. Avainlista +on kaikkien muiden luetteloiden yhdiste. Suomenkielinen äidinkielinen puhuja (@roopeg) tarkistaa +käännöksen; ammattikääntäjä ei ole sitä käynyt läpi. + +## Käytännöt ja laajuus + +- Valikot: Tiedosto, Muokkaa, Näytä, Kuva, Ikkuna, Ohje. +- Library = Kirjasto, Develop = Kehitys, Collection = Kokoelma, Album = Albumi, + Preset = Esiasetus, Catalog = Katalogi (Lightroom-katalogi; keyword and model lists stay + ”luettelo”), Snapshot = Tilannevedos, Version = Versio, Print (module) = Tulostus, the + command Print… = Tulosta…. +- Exposure = Valotus, Contrast = Kontrasti, Clarity = Selkeys, Texture = Tekstuuri, + Dehaze = Sumunpoisto, Vibrance = Eloisuus, Saturation = Värikylläisyys, Hue = Sävy, + Tint = Värisävy, Temperature = Lämpötila, White Balance = Valkotasapaino. +- Highlights = Huippuvalot, Shadows = Varjot, Whites = Valkoiset, Blacks = Mustat. +- Sharpening = Terävöinti, Noise Reduction = Kohinanpoisto, Grain = Rakeisuus, + Vignette = Vinjetti, Color Grading = Väriluokittelu, Tone Curve = Sävykäyrä, + Defringe = Värivirheen korjaus, Feather = Häivytys. +- Crop = Rajaus, Straighten = Suorista, Mask = Maski, Brush = Sivellin, + Radial = Säteittäinen, Linear Gradient = Lineaarinen liukuväri, + Soft Proofing = Vedoksen esikatselu. +- Spot removal: Spot = Täplä, Heal = Paranna, Clone = Kloonaa. Point Color = Pistevärit and + Point Curve = Pistekäyrä keep ”piste”. +- Flag = Lippu, Pick = Valitse (picked photo = Valittu kuva), Reject = Hylätty, Rating = Luokitus (Star rating = + Tähtiluokitus), Label = Merkintä, Color Label = Värimerkintä, Keyword = Avainsana, + Smart Album = Älyalbumi, Filmstrip = Filminauha, Virtual Copy = Virtuaalikopio, + Stack = Pino, Template = Mallipohja (AI Model = Malli), Detection = Havaitseminen, Recently Deleted = Äskettäin poistetut, My Photos = Omat kuvat. +- Päivämäärä on muodossa `20.9.2026` (ilman etunollia), viikonpäivä alkaa pienellä kirjaimella + (`sunnuntai 20.9.2026`), kuukausi–vuosi on `9/2026` ja kellonaika 24-tuntinen `16:04:05`. +- Yksiköt: `kt`, `Mt`, `Gt`; prosentin edessä on väli (`50 %`). +- Määrät kirjoitetaan sanan jälkeen (”Tuotuja kuvia: 22”, ”Odottavia kuvia: 2”), koska + suomessa lukusanan jälkeinen substantiivi on yksikön partitiivissa (1 kuva, 2 kuvaa), eikä + englannin monikkopääte `s` voi valita muotoa. Englannin pääte kulutetaan `{:.0}`-merkinnällä. + Kun lause taipuu yksikössä kaikille luvuille (”{n} kuvalta”, ”{n} kuvassa”), luku voi olla + lauseen sisällä. +- Mukana toimitettu Inter-fontti sisältää ä, ö ja å sekä lainausmerkit ” ”. Lisäfonttia ei + tarvita. + +Mitä uutta -ikkunan versiotiedotteet jäävät englanniksi, kuten useimmissa luetteloissa. Alemman +tason tekniset virheilmoitukset ja osa käännöskerroksen ulkopuolisista viesteistä jäävät +englanniksi. Käännös ei muuta kirjastotietoja eikä englanninkielisiä lähdemerkkijonoja. + +## Testaus + +`i18n::tests` tarkistaa komennon rekisteröinnin, vaihdon valikosta ja ohjauskanavasta, +kielen tallennuksen, luetteloiden kattavuuden, paikkamerkit, määrämuodot, päivämäärän, ajan ja +suomen kirjaimet. Rust tarkistaa muotoilumallit käännösvaiheessa. + +Kielentarkistuksessa kannattaa katsoa erityisesti: ”Väriluokittelu” (Color Grading), +”Valoalueet / Valkoiset” (Highlights / Whites), ”Näyttövedos” (Soft Proofing), +”Älyalbumi”, ”Pino” (Stack), ”Pistevärit” (Point Color), ”Tekoälykohinanpoisto” sekä +luovien esiasetusten nimet. Kielen lisäämisen ohje on tiedostossa +[localization.md](localization.md). diff --git a/docs/localization-parity.md b/docs/localization-parity.md index b7900d350..5786576a1 100644 --- a/docs/localization-parity.md +++ b/docs/localization-parity.md @@ -1,12 +1,12 @@ # Localization parity -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** minor (de, es, fr, ja, uk catalogs filled; re-measured; Italian and Georgian interface catalogs added) · **Target:** Adobe Lightroom Classic 15.5 / Lightroom 9.6 +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-17 · **Change:** minor (de, es, fr, ja, uk catalogs filled; re-measured; Italian, Georgian and Finnish interface catalogs added) · **Target:** Adobe Lightroom Classic 15.5 / Lightroom 9.6 How far each interface language is from `full`. How to add or maintain a language is in [localization.md](localization.md); per-language notes are in `localization-.md` ([zh-hans](localization-zh-hans.md), [zh-hant](localization-zh-hant.md), [ja](localization-ja.md), [pt-br](localization-pt-br.md), [es](localization-es.md), [de](localization-de.md), -[ru](localization-ru.md), [ka](localization-ka.md)). +[ru](localization-ru.md), [fi](localization-fi.md), [ka](localization-ka.md)). ## The target @@ -67,6 +67,7 @@ that is promising but is not recorded as review, so the column says `no (communi | Ukrainian | `uk` | 2,383 / 2,398 (99%; 2026-10-12) | Cyrillic (Inter) | no (community edits) | partial (lower-layer errors English) | 2–4 h | | Italian | `it` | 2,201 / 2,398 (92%, measured 2026-10-12; the rest is What's New) | Latin (Inter) | no (written with an agent; native-speaker pass pending) | partial (lower-layer errors English) | 3–5 h | | Georgian | `ka` | 2,398 / 2,398 (100%: every plain and formats message any catalog has on 2026-10-12, plus the 27 display labels and 397 What's New lines no other catalog translates) | Geor: no craft-fonts face yet (boxes until one is available) | yes (native speaker) | partial (lower-layer errors English) | 2–4 h (+ a Georgian face) | +| Finnish | `fi` | 2,610 / 3,308 (79%, measured 2026-10-17: 2,313 plain + 297 formats; the rest is What's New) | Latin (Inter) | no (written with an agent; native-speaker review by the contributor pending) | partial (lower-layer errors English) | 3–5 h | Target languages LightCraft lacks: Korean, Dutch, Polish, Swedish, Norwegian Bokmål, Thai (Thai needs shaping and line breaking without spaces). Each Latin-script one is ~10–16 h; Thai @@ -93,6 +94,7 @@ Target languages LightCraft lacks: Korean, Dutch, Polish, Swedish, Norwegian Bok | Date | Change | Summary | |---|---|---| +| 2026-10-17 | minor | Finnish interface catalog (`fi`): 2,610 of 3,308 messages (2,313 plain + 297 formats), What's New left in English | | 2026-10-12 | minor | Italian interface catalog (`it`): 2,201 of 2,398 messages, What's New left in English | | 2026-10-11 | minor | Shared work: the interface decides on error kinds, not English error text (#1046) | | 2026-10-12 | minor | Georgian (`ka`) row: every catalog message | diff --git a/docs/localization.md b/docs/localization.md index 84feb4d8d..1cdbb4a1c 100644 --- a/docs/localization.md +++ b/docs/localization.md @@ -2,11 +2,11 @@ The interface ships in the language it is written in (English) plus every language in the table in `crates/ui-egui/src/i18n.rs`. Today that is English, Simplified Chinese (`zh-hans`), Traditional -Chinese (`zh-hant`, Taiwan), Japanese (`ja`), Brazilian Portuguese (`pt-br`), Spanish (`es`), German (`de`), Russian (`ru`), French (`fr`), Ukrainian (`uk`), Czech (`cs`) and Georgian (`ka`). This file is the reference for **adding or maintaining a language**; the per-language notes +Chinese (`zh-hant`, Taiwan), Japanese (`ja`), Brazilian Portuguese (`pt-br`), Spanish (`es`), German (`de`), Russian (`ru`), French (`fr`), Ukrainian (`uk`), Czech (`cs`), Georgian (`ka`) and Finnish (`fi`). This file is the reference for **adding or maintaining a language**; the per-language notes are in [`localization-zh-hans.md`](localization-zh-hans.md), [`localization-zh-hant.md`](localization-zh-hant.md), [`localization-ja.md`](localization-ja.md), [`localization-pt-br.md`](localization-pt-br.md), [`localization-es.md`](localization-es.md), [`localization-de.md`](localization-de.md), [`localization-ru.md`](localization-ru.md), -[`localization-cs.md`](localization-cs.md) and [`localization-ka.md`](localization-ka.md). +[`localization-cs.md`](localization-cs.md), [`localization-fi.md`](localization-fi.md) and [`localization-ka.md`](localization-ka.md). ## Adding a language @@ -34,6 +34,7 @@ are in [`localization-zh-hans.md`](localization-zh-hans.md), [`localization-zh-h Cs, "cs", "Čeština", "Latn", include_str!("../locales/cs.json"); It, "it", "Italiano", "Latn", include_str!("../locales/it.json"); Ka, "ka", "ქართული", "Geor", include_str!("../locales/ka.json"); + Fi, "fi", "Suomi", "Latn", include_str!("../locales/fi.json"); } ```