mirror of
https://github.com/penpot/penpot.git
synced 2026-09-30 15:56:17 +00:00
Drop 277 keys nothing references from en.po (verified against frontend/src and common/src) and let sync propagate the deletions to every locale. Clear all 10 fuzzy entries: fill the 5 empty translations, keep the 4 valid ones, and drop the duplicated max-quote-reached in favor of max-quota-reached (the backend code stays, the UI maps it to the quota text). Recover 22 used-but-missing keys with translations: the 19 shortcuts section/subsection labels plus connected-to, pixel-grid-color and tokens.add-set. Make the rest statically visible to rehash instead: :label fns on shortcut commands, sections and subsections (one debug-only and one colorpicker-local id exempt); case branches in place of dm/str-built keys (export modal, text decoration and transform, undo history with raw-key fallback); hoist conditionals out of tr calls; pre-translate modal props and role labels; replace the lone (i18n/tr ...) site with tr. Turn static :error/code data into eager :error/fn calls in the common schemas and the auth/password forms. Rename the two keys containing spaces and point team leave at max-quota-reached. Backend-driven keys stay dynamic by design, declared with (tr ...) comments: the five weak-password details, team and organization notifications. Tooling: rehash also scans common/src and no longer treats a missing -l as no locale; new clj-kondo tr-dynamic warning flags non-literal tr args (lint scripts use --fail-level error so it never fails CI); tr docstring states the literal-only rule. Tests cover the shortcut label wiring, the undo-history fallback and the :error/fn schemas. Translations memory rewritten to match; es check word list gains three entries. Rebased onto develop: adopt the register field-error UX (the weak-password declarations move onto the :options code), keep develop's newer keys (connection-error, account-locked, save-retrying, tokens-source strings) with fresh references, and reword the shortcuts.cljs prose comment so rehash does not invent a "literal" key. AI-assisted-by: muse-spark-1.3-contributor
221 lines
7.0 KiB
Plaintext
221 lines
7.0 KiB
Plaintext
msgid ""
|
|
msgstr ""
|
|
"PO-Revision-Date: 2026-05-27 16:03+0000\n"
|
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
|
"Language-Team: Finnish "
|
|
"<https://hosted.weblate.org/projects/penpot/frontend/fi/>\n"
|
|
"Language: fin_FI\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=utf-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
"X-Generator: Weblate 2026.6.dev0\n"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:227, src/app/main/ui/static.cljs:191, src/app/main/ui/viewer/login.cljs:119
|
|
msgid "auth.already-have-account"
|
|
msgstr "Onko sinulla jo käyttäjä?"
|
|
|
|
#: src/app/main/ui/auth/recovery.cljs:83
|
|
msgid "auth.confirm-password"
|
|
msgstr "Vahvista salasana"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:239
|
|
msgid "auth.create-demo-account"
|
|
msgstr "Luo testikäyttäjä"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:41
|
|
msgid "auth.demo-warning"
|
|
msgstr ""
|
|
"Tämä on DEMO versio, ÄLÄ KÄYTÄ oikeaan työhön, projektit tullaan määräajoin "
|
|
"poistamaan."
|
|
|
|
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
|
msgid "auth.forgot-password"
|
|
msgstr "Unohditko salasanasi?"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
|
msgid "auth.fullname"
|
|
msgstr "Koko nimi"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:231, src/app/main/ui/static.cljs:194, src/app/main/ui/viewer/login.cljs:122
|
|
msgid "auth.login-here"
|
|
msgstr "Kirjaudu sisään"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:254
|
|
msgid "auth.login-with-github-submit"
|
|
msgstr "GitHub"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:260
|
|
msgid "auth.login-with-gitlab-submit"
|
|
msgstr "GitLab"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:248
|
|
msgid "auth.login-with-google-submit"
|
|
msgstr "Google"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:213
|
|
msgid "auth.login-with-ldap-submit"
|
|
msgstr "LDAP"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:266
|
|
msgid "auth.login-with-oidc-submit"
|
|
msgstr "OpenID"
|
|
|
|
#: src/app/main/ui/auth/recovery.cljs:76
|
|
msgid "auth.new-password"
|
|
msgstr "Syötä uusi salasana"
|
|
|
|
#: src/app/main/ui/auth/recovery.cljs:52
|
|
msgid "auth.notifications.password-changed-successfully"
|
|
msgstr "Salasanan vaihto onnistui"
|
|
|
|
#: src/app/main/ui/auth/recovery_request.cljs:50
|
|
msgid "auth.notifications.profile-not-verified"
|
|
msgstr "Käyttäjäsi ei ole vahvistettu, vahvista se jatkaaksesi."
|
|
|
|
#: src/app/main/ui/auth/recovery_request.cljs:33
|
|
msgid "auth.notifications.recovery-token-sent"
|
|
msgstr "Salasanan vaihtoon tarvittava linkki lähetetty sähköpostiisi."
|
|
|
|
#: src/app/main/ui/auth/verify_token.cljs:85
|
|
msgid "auth.notifications.team-invitation-accepted"
|
|
msgstr "Ryhmään liittyminen onnistui"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
|
msgid "auth.password"
|
|
msgstr "Salasana"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:188
|
|
msgid "auth.password-length-hint"
|
|
msgstr "Vähintään 8 merkkiä"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:272
|
|
msgid "auth.privacy-policy"
|
|
msgstr "Tietosuojaseloste"
|
|
|
|
#: src/app/main/ui/auth/recovery_request.cljs:81
|
|
msgid "auth.recovery-request-submit"
|
|
msgstr "Palauta salasana"
|
|
|
|
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
|
msgid "auth.recovery-request-subtitle"
|
|
msgstr "Lähetämme sinulle sähköpostin, jossa lukee ohjeet"
|
|
|
|
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
|
msgid "auth.recovery-request-title"
|
|
msgstr "Unohtuiko salasana?"
|
|
|
|
#: src/app/main/ui/auth/recovery.cljs:86
|
|
msgid "auth.recovery-submit"
|
|
msgstr "Vaihda salasanasi"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:310, src/app/main/ui/static.cljs:177, src/app/main/ui/viewer/login.cljs:109
|
|
msgid "auth.register"
|
|
msgstr "Ei käyttäjää?"
|
|
|
|
#: src/app/main/ui/auth/login.cljs:314, src/app/main/ui/auth/register.cljs:199, src/app/main/ui/auth/register.cljs:345, src/app/main/ui/static.cljs:181, src/app/main/ui/viewer/login.cljs:112
|
|
msgid "auth.register-submit"
|
|
msgstr "Luo uusi käyttäjä"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:218
|
|
msgid "auth.register-title"
|
|
msgstr "Luo uusi käyttäjä"
|
|
|
|
#: src/app/main/ui/auth/register.cljs:264, src/app/main/ui/dashboard/sidebar.cljs:542, src/app/main/ui/workspace/main_menu.cljs:210
|
|
msgid "auth.terms-of-service"
|
|
msgstr "Käyttöehdot"
|
|
|
|
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
|
msgid "common.publish"
|
|
msgstr "Julkaise"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314
|
|
msgid "common.share-link.all-users"
|
|
msgstr "Kaikki Penpotin käyttäjät"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:198
|
|
msgid "common.share-link.confirm-deletion-link-description"
|
|
msgstr ""
|
|
"Oletko varma, että haluat poistaa tämän linkin? Sen jälkeen kukaan ei voi "
|
|
"käyttää sitä"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289
|
|
msgid "common.share-link.current-tag"
|
|
msgstr "(nykyinen)"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214
|
|
msgid "common.share-link.destroy-link"
|
|
msgstr "Poista linkki"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:221
|
|
msgid "common.share-link.get-link"
|
|
msgstr "Hanki linkki"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:137
|
|
msgid "common.share-link.link-copied-success"
|
|
msgstr "Linkin kopiointi onnistui"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:231
|
|
msgid "common.share-link.manage-ops"
|
|
msgstr "Muokkaa käyttöoikeuksia"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:277
|
|
msgid "common.share-link.page-shared"
|
|
msgid_plural "common.share-link.page-shared"
|
|
msgstr[0] "Yksi sivu jaettu"
|
|
msgstr[1] "%s sivua jaettu"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:298
|
|
msgid "common.share-link.permissions-can-comment"
|
|
msgstr "Voi kommentoida"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:308
|
|
msgid "common.share-link.permissions-can-inspect"
|
|
msgstr "Voi tarkastella koodia"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:193
|
|
msgid "common.share-link.permissions-hint"
|
|
msgstr "Kaikilla linkin saaneilla on käyttöoikeus"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:241
|
|
msgid "common.share-link.permissions-pages"
|
|
msgstr "Sivut jaettu"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:183
|
|
msgid "common.share-link.placeholder"
|
|
msgstr "Jaettava linkki ilmestyy tähän"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313
|
|
msgid "common.share-link.team-members"
|
|
msgstr "Vain ryhmän jäsenet"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:171
|
|
msgid "common.share-link.title"
|
|
msgstr "Jaa prototyypit"
|
|
|
|
#: src/app/main/ui/viewer/share_link.cljs:269
|
|
msgid "common.share-link.view-all"
|
|
msgstr "Valitse kaikki"
|
|
|
|
#: src/app/main/ui/workspace/libraries.cljs:432, src/app/main/ui/workspace/libraries.cljs:833
|
|
msgid "common.unpublish"
|
|
msgstr "Peruuta julkaisu"
|
|
|
|
#: src/app/main/ui/dashboard/projects.cljs:90
|
|
msgid "dasboard.team-hero.management"
|
|
msgstr "Ryhmän hallinta"
|
|
|
|
#: src/app/main/ui/dashboard/projects.cljs:89
|
|
msgid "dasboard.team-hero.text"
|
|
msgstr ""
|
|
"Penpot on tarkoitettu ryhmille. Kutsu jäseniä työstääksenne projekteja "
|
|
"yhdessä"
|
|
|
|
#: src/app/main/ui/dashboard/projects.cljs:87
|
|
msgid "dasboard.team-hero.title"
|
|
msgstr "Ryhmäydy!"
|
|
|
|
#: src/app/main/ui/auth/recovery.cljs:47
|
|
msgid "errors.invalid-recovery-token"
|
|
msgstr "Palautustunnus on virheellinen."
|