mirror of
https://github.com/penpot/penpot.git
synced 2026-09-30 07:46:16 +00:00
🌐 Clean up en translations (#11853)
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
This commit is contained in:
parent
76b9c1c859
commit
4b978767ea
@ -22,6 +22,8 @@
|
||||
rumext.v2/defc hooks.export/rumext-defc
|
||||
rumext.v2/lazy-component hooks.export/rumext-lazycomponent
|
||||
shadow.lazy/loadable hooks.export/rumext-lazycomponent
|
||||
app.util.i18n/tr hooks.i18n/tr-dynamic
|
||||
app.common.i18n/tr hooks.i18n/tr-dynamic
|
||||
}}
|
||||
|
||||
:output
|
||||
@ -45,6 +47,9 @@
|
||||
:potok/reify-type
|
||||
{:level :error}
|
||||
|
||||
:penpot/tr-dynamic
|
||||
{:level :warning}
|
||||
|
||||
:redundant-primitive-coercion
|
||||
{:level :off}
|
||||
|
||||
|
||||
17
.clj-kondo/hooks/i18n.clj
Normal file
17
.clj-kondo/hooks/i18n.clj
Normal file
@ -0,0 +1,17 @@
|
||||
(ns hooks.i18n
|
||||
(:require [clj-kondo.hooks-api :as api]))
|
||||
|
||||
(defn tr-dynamic
|
||||
[{:keys [:node]}]
|
||||
(let [[_ code & _] (:children node)]
|
||||
(when (and (some? code)
|
||||
(not (api/string-node? code)))
|
||||
(let [{:keys [:row :col :end-row :end-col]} (meta code)]
|
||||
(api/reg-finding! {:message "dynamic key in (tr ...) is invisible to rehash; use a string literal or declare it with ;; (tr \"key\")"
|
||||
:type :penpot/tr-dynamic
|
||||
:row row
|
||||
:col col
|
||||
;; end positions are required for #_:clj-kondo/ignore to match
|
||||
:end-row end-row
|
||||
:end-col end-col}))))
|
||||
{:node node})
|
||||
@ -6,77 +6,52 @@ high-coverage support reference, never the base.
|
||||
|
||||
## Workflow
|
||||
|
||||
- Canonicalize with `node ./scripts/translations.js sync -l <locale>`
|
||||
from `frontend/`: sorts entries, syncs `#:` comments from `en`,
|
||||
deletes keys missing in `en`.
|
||||
- `sync` copies ALL comment flags from `en`, including `#, fuzzy`.
|
||||
Translated entries must NOT stay fuzzy: strip the flag after
|
||||
translating (mirror `es.po`, which keeps fuzzy only on genuinely
|
||||
untranslated entries). Fuzzy entries are excluded from
|
||||
`msgfmt --statistics` translated counts.
|
||||
- Canonical files carry NO `#~` obsolete blocks (`en`/`es` have zero).
|
||||
Drop them; `sync` does not resurrect them.
|
||||
- Definition of done: `msgfmt --check <locale>.po` exit 0 and
|
||||
`msgfmt --statistics` shows 0 fuzzy, 0 untranslated.
|
||||
- Canonicalize with `node ./scripts/translations.js sync -l <locale>` from `frontend/`: sorts entries, syncs `#:` comments from `en`, deletes keys missing in `en`.
|
||||
- `sync` copies ALL comment flags from `en`, including `#, fuzzy`. Translated entries must NOT stay fuzzy: strip the flag after translating (mirror `es.po`, which keeps fuzzy only on genuinely untranslated entries). Fuzzy entries are excluded from `msgfmt --statistics` translated counts.
|
||||
- Canonical files carry NO `#~` obsolete blocks (`en`/`es` have zero). Drop them; `sync` does not resurrect them.
|
||||
- Definition of done: `msgfmt --check <locale>.po` exit 0 and `msgfmt --statistics` shows 0 fuzzy, 0 untranslated.
|
||||
- `rehash` scans `frontend/src` AND `common/src` for `(tr "key"` occurrences (any line counts, including `;;` comments) and refreshes `#:` refs in `en`, marking unreferenced keys `#, unused`.
|
||||
- Dynamic keys are invisible to `rehash`: eliminate them instead of
|
||||
declaring them. Preference order: literal `(tr "key")` args only;
|
||||
never put a branch inside `tr`, hoist it out (`(if cond (tr "a") (tr "b"))`);
|
||||
resolve code→message maps with `case` returning literal calls;
|
||||
key-forwarding components take pre-translated strings (callers translate
|
||||
with literals). Only when no simple fix exists (open key sets sent by the
|
||||
backend, large data-driven matrices like `shortcuts.*`) declare each key
|
||||
with a `;; (tr "the.key")` comment next to the call site (grouped under
|
||||
`;; Execution time translation strings:`), otherwise the next `rehash`
|
||||
flags them `unused`. The declaration convention is legacy fallback, not
|
||||
the default: never introduce new declarations where a hoist or
|
||||
pre-translation works, and remove existing ones when fixing the call
|
||||
site. Same for `:error/code "key"` data: prefer `:error/fn #(tr "key")`. Any non-literal first arg to `tr` is reported by the `:penpot/tr-dynamic` clj-kondo warning (hook in `.clj-kondo/hooks/i18n.clj`, registered for `app.util.i18n/tr` and `app.common.i18n/tr`) and forbidden by the `tr` docstring: only `(tr "literal" ...)` is statically resolvable. Translation keys must not contain spaces (use `-` or `.`).
|
||||
- Shortcut command/section/subsection labels (`shortcuts.*`, including `shortcuts.section.*` and `shortcuts.subsection.*`) resolve through `:label` fns holding static `(tr "literal")` calls, executed at render time: commands carry `:label` on their definitions in the `app.main.data.*.shortcuts` namespaces, sections/subsections in static registries in `app.main.ui.shortcuts` next to `translation-keyname` (id lookup with raw-key fallback for stale custom ids). When adding, renaming, or removing commands/sections/subsections, add/update/remove the `:label`/registry entry; `rehash` sees the literals with no comment needed, and the exhaustiveness test fails otherwise. Exempt, untranslated by design: debug `:preview-frame` and colorpicker `:delete-stop` (no PO keys).
|
||||
|
||||
## Entry rules
|
||||
|
||||
- Keys resolved dynamically from server-provided data carry a `#, backend`
|
||||
flag (set it in `en`, `sync` copies it to the locales): do not remove or
|
||||
rename these entries, and keep their `%s` placeholders (the backend only
|
||||
sends the key). The code side keeps a `;; (tr "key")` marker for `rehash`
|
||||
plus a `#_{:clj-kondo/ignore [:penpot/tr-dynamic]}` on the call site.
|
||||
- New entries take `#:` refs from `en`; copy `#, unused`, never `#, fuzzy`.
|
||||
- `en` keys with empty `msgstr` (or `#, fuzzy` + empty): translate from
|
||||
`es`/source context, never leave empty.
|
||||
- Entries whose `en` uses `msgid_plural` need `msgstr[0]`/`msgstr[1]`
|
||||
(header: `nplurals=2; plural=n != 1`). Keep the `msgid_plural` line:
|
||||
a singular `msgstr` on a plural key silently breaks count selection
|
||||
at runtime (the app build reads 1-elem `msgstr` as singular).
|
||||
- `sync` re-adds `#, fuzzy` on EVERY run for entries fuzzy in `en`;
|
||||
re-strip after the last sync, never before it.
|
||||
- Preserve verbatim: `%s`/`%d`, `{var}`/`{{...}}`, markdown
|
||||
`[text](%s)`, HTML tags, `\n` positions, brand names (Penpot),
|
||||
key names (Ctrl/Shift/Alt), technical terms (SVG, CSS, HSV, RGB).
|
||||
- `en` keys with empty `msgstr` (or `#, fuzzy` + empty): translate from `es`/source context, never leave empty.
|
||||
- Entries whose `en` uses `msgid_plural` need `msgstr[0]`/`msgstr[1]` (header: `nplurals=2; plural=n != 1`). Keep the `msgid_plural` line: a singular `msgstr` on a plural key silently breaks count selection at runtime (the app build reads 1-elem `msgstr` as singular).
|
||||
- `sync` re-adds `#, fuzzy` on EVERY run for entries fuzzy in `en`; re-strip after the last sync, never before it.
|
||||
- Preserve verbatim: `%s`/`%d`, `{var}`/`{{...}}`, markdown `[text](%s)`, HTML tags, `\n` positions, brand names (Penpot), key names (Ctrl/Shift/Alt), technical terms (SVG, CSS, HSV, RGB).
|
||||
|
||||
## Catalan (ca) conventions
|
||||
|
||||
- Normative IEC/Termcat Catalan. Address the user in VOSALTRES
|
||||
(2nd person plural): "Deseu", "Creeu", "Ja teniu un compte?".
|
||||
Buttons/menus use short imperatives ("Crea", "Mou", "Restaura").
|
||||
- Established glossary (reuse exactly, do not re-coin): layer=capa,
|
||||
board=tauler, stroke=traç, fill=Emplenat, blur=Difuminat,
|
||||
shadow=Ombra, clipboard=porta-retalls, delete=Elimina,
|
||||
rename=Canvia el nom, shortcut=drecera, grid=graella (keep "grid"
|
||||
where the file already does, e.g. grid-layout editing),
|
||||
plugins/extensions UI=extensions, layout=Disposició,
|
||||
gradient=Degradat, wireframing kept as loanword.
|
||||
- Normative IEC/Termcat Catalan. Address the user in VOSALTRES (2nd person plural): "Deseu", "Creeu", "Ja teniu un compte?". Buttons/menus use short imperatives ("Crea", "Mou", "Restaura").
|
||||
- Established glossary (reuse exactly, do not re-coin): layer=capa, board=tauler, stroke=traç, fill=Emplenat, blur=Difuminat, shadow=Ombra, clipboard=porta-retalls, delete=Elimina, rename=Canvia el nom, shortcut=drecera, grid=graella (keep "grid" where the file already does, e.g. grid-layout editing), plugins/extensions UI=extensions, layout=Disposició, gradient=Degradat, wireframing kept as loanword.
|
||||
- Ela geminada uses the middle dot: Cancel·la, paral·lel, al·lega.
|
||||
- ALL-CAPS source stays ALL-CAPS in Catalan; keep `$175`-style
|
||||
amounts in IEC format (`175 $/mes`) only where `es` already adapts.
|
||||
- Shortcut/action names (`shortcuts.*`) are noun/infinitive labels,
|
||||
not sentences. Error strings are direct, no hedging.
|
||||
- Same English source in different contexts may legitimately differ
|
||||
(verb "Copia" vs noun "Còpia"; "Desactivat" vs "Deshabilitada"
|
||||
agreeing with "drecera"). Normalize only true duplicates.
|
||||
- ALL-CAPS source stays ALL-CAPS in Catalan; keep `$175`-style amounts in IEC format (`175 $/mes`) only where `es` already adapts.
|
||||
- Shortcut/action names (`shortcuts.*`) are noun/infinitive labels, not sentences. Error strings are direct, no hedging.
|
||||
- Same English source in different contexts may legitimately differ (verb "Copia" vs noun "Còpia"; "Desactivat" vs "Deshabilitada" agreeing with "drecera"). Normalize only true duplicates.
|
||||
|
||||
## QA before commit
|
||||
|
||||
- Run `node ./scripts/translations.js check -l <locale>` from
|
||||
`frontend/` (no default locale: pass `-l` explicitly): 0 errors
|
||||
required; review warnings by hand. Word lists live in
|
||||
`frontend/scripts/check-translations/words.<locale>.txt`
|
||||
(`[elision]` `[function]` `[common]` `[ok]` `[brands]`); new valid
|
||||
words that trip the gate go to `[ok]`; `check --self-test`
|
||||
covers the detector rules. Without a catalog only the universal
|
||||
checks run. `#, fuzzy` entries are skipped (known-pending,
|
||||
owned elsewhere).
|
||||
- Placeholder parity per entry (singular AND each plural form,
|
||||
also enforced by the script); verify `%s` against the `tr` call
|
||||
site when `en`/`es`/code disagree (a `%s` the code never passes
|
||||
renders literally; a dropped one swallows the argument). On
|
||||
`#, unused` keys the script only warns: never "fix" them by
|
||||
deleting placeholders or links, a reactivation may need them.
|
||||
- Glued words (AI batches drop spaces at wrap boundaries): the
|
||||
script flags function-word splits (`del'equip`, `lapolítica`,
|
||||
`sinecessiteu`), `,/.`/`:` without following space,
|
||||
lowercase+Uppercase joins (`delPenpot`, `oCapitalize`) and `%s`
|
||||
glued to a word.
|
||||
- Balanced `[]`/`()` in markdown links; no double spaces; no glued
|
||||
words around `·`; trailing spaces match the source.
|
||||
- Run `node ./scripts/translations.js check -l <locale>` from `frontend/` (no default locale: pass `-l` explicitly): 0 errors required; review warnings by hand. Word lists live in `frontend/scripts/check-translations/words.<locale>.txt` (`[elision]` `[function]` `[common]` `[ok]` `[brands]`); new valid words that trip the gate go to `[ok]`; `check --self-test` covers the detector rules. Without a catalog only the universal checks run. `#, fuzzy` entries are skipped (known-pending, owned elsewhere).
|
||||
- Placeholder parity per entry (singular AND each plural form, also enforced by the script); verify `%s` against the `tr` call site when `en`/`es`/code disagree (a `%s` the code never passes renders literally; a dropped one swallows the argument). On `#, unused` keys the script only warns: never "fix" them by deleting placeholders or links, a reactivation may need them.
|
||||
- Glued words (AI batches drop spaces at wrap boundaries): the script flags function-word splits (`del'equip`, `lapolítica`, `sinecessiteu`), `,/.`/`:` without following space, lowercase+Uppercase joins (`delPenpot`, `oCapitalize`) and `%s` glued to a word.
|
||||
- Balanced `[]`/`()` in markdown links; no double spaces; no glued words around `·`; trailing spaces match the source.
|
||||
- `git diff --stat` must touch only `frontend/translations/<locale>.po`.
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
"ws": "^8.21.1"
|
||||
},
|
||||
"scripts": {
|
||||
"lint:clj": "clj-kondo --config-dir ../.clj-kondo --lint ../common/src src/",
|
||||
"lint:clj": "clj-kondo --fail-level error --config-dir ../.clj-kondo --lint ../common/src src/",
|
||||
"check-fmt:clj": "cljfmt check --parallel=true src/ test/",
|
||||
"fmt:clj": "cljfmt fix --parallel=true src/ test/",
|
||||
"test:e2e": "node --test --test-concurrency=1 test/e2e/*.test.mjs"
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
"date-fns": "^4.4.0"
|
||||
},
|
||||
"scripts": {
|
||||
"lint:clj": "clj-kondo --config-dir ../.clj-kondo --lint src/",
|
||||
"lint:clj": "clj-kondo --fail-level error --config-dir ../.clj-kondo --lint src/",
|
||||
"lint:js": "exit 0",
|
||||
"check-fmt:clj": "cljfmt check --parallel=true src/ test/",
|
||||
"check-fmt:js": "prettier -c src/**/*.js",
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
#?(:clj [malli.dev.pretty :as mdp])
|
||||
#?(:clj [malli.dev.virhe :as v])
|
||||
[app.common.data :as d]
|
||||
[app.common.i18n :as i18n :refer [tr]]
|
||||
[app.common.json :as json]
|
||||
[app.common.math :as mth]
|
||||
[app.common.pprint :as pp]
|
||||
@ -493,7 +494,7 @@
|
||||
:type-properties
|
||||
{:title "email"
|
||||
:description "string with valid email address"
|
||||
:error/code "errors.invalid-email"
|
||||
:error/fn #(tr "errors.invalid-email")
|
||||
:gen/gen (sg/email)
|
||||
:decode/string (fn [v] (or (parse-email v) v))
|
||||
:decode/json (fn [v] (or (parse-email v) v))
|
||||
@ -1059,23 +1060,23 @@
|
||||
(and (string? value)
|
||||
(number? max)
|
||||
(> (count value) max))
|
||||
{:code ["errors.field-max-length" max]}
|
||||
(tr "errors.field-max-length" (i18n/c max))
|
||||
|
||||
(and (string? value)
|
||||
(number? min)
|
||||
(< (count value) min))
|
||||
{:code ["errors.field-min-length" min]}
|
||||
(tr "errors.field-min-length" (i18n/c min))
|
||||
|
||||
(and (string? value)
|
||||
(str/empty? value))
|
||||
{:code "errors.field-missing"}
|
||||
(tr "errors.field-missing")
|
||||
|
||||
(and (string? value)
|
||||
(str/blank? value))
|
||||
{:code "errors.field-not-all-whitespace"}
|
||||
(tr "errors.field-not-all-whitespace")
|
||||
|
||||
:else
|
||||
{:code "errors.invalid-text"})))}})
|
||||
(tr "errors.invalid-text"))))}})
|
||||
|
||||
(register!
|
||||
{:type ::password
|
||||
@ -1088,7 +1089,7 @@
|
||||
{:title "password"
|
||||
:gen/gen (->> (sg/word-string)
|
||||
(sg/filter #(>= (count %) 8)))
|
||||
:error/code "errors.password-too-short"
|
||||
:error/fn #(tr "errors.password-too-short")
|
||||
::oapi/type "string"
|
||||
::oapi/format "password"}})
|
||||
|
||||
|
||||
@ -15,6 +15,8 @@
|
||||
|
||||
(defn- translate-code
|
||||
[code]
|
||||
;; validation codes are dynamic by design
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
(if (vector? code)
|
||||
(tr (nth code 0) (i18n/c (nth code 1)))
|
||||
(tr code)))
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
|
||||
(ns app.common.types.team
|
||||
(:require
|
||||
[app.common.i18n :refer [tr]]
|
||||
[app.common.schema :as sm]))
|
||||
|
||||
(def valid-roles
|
||||
@ -23,7 +24,7 @@
|
||||
(def schema:team-name
|
||||
[:and
|
||||
[::sm/text {:max 250}]
|
||||
[:fn {:error/code "errors.team-name-invalid-chars"}
|
||||
[:fn {:error/fn #(tr "errors.team-name-invalid-chars")}
|
||||
(fn [s] (not (re-find #"[.:/]" s)))]])
|
||||
|
||||
;; FIXME: specify more fields
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
"build": "pnpm run clear:shadow-cache && pnpm run build:app",
|
||||
"fmt:clj": "cljfmt fix --parallel=true src/ test/",
|
||||
"check-fmt:clj": "cljfmt check --parallel=true src/ test/",
|
||||
"lint:clj": "clj-kondo --parallel --lint src/ test/",
|
||||
"lint:clj": "clj-kondo --fail-level error --parallel --lint src/ test/",
|
||||
"build:test": "clojure -M:dev:shadow-cljs compile test",
|
||||
"test": "pnpm run build:test && PENPOT_SECRET_KEY=${PENPOT_SECRET_KEY:-test-secret-key} node target/tests/test.js",
|
||||
"test:quiet": "node ./scripts/test-quiet.js"
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
"fmt:clj": "cljfmt fix --parallel=true src/ test/",
|
||||
"fmt:js": "prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js -c text-editor/**/*.js -w",
|
||||
"fmt:scss": "prettier -c resources/styles -c src/**/*.scss -w",
|
||||
"lint:clj": "clj-kondo --config-dir ../.clj-kondo --lint ../common/src src/",
|
||||
"lint:clj": "clj-kondo --fail-level error --config-dir ../.clj-kondo --lint ../common/src src/",
|
||||
"lint:js": "exit 0",
|
||||
"lint:scss": "pnpm exec stylelint '{src,resources}/**/*.scss'",
|
||||
"build:test": "pnpm run build:wasm && clojure -M:dev:shadow-cljs compile test",
|
||||
|
||||
@ -230,6 +230,7 @@ ayudarnos
|
||||
ayudarte
|
||||
borradores
|
||||
borrarlo
|
||||
bloquearla
|
||||
cambiada
|
||||
caracteres
|
||||
como
|
||||
@ -251,11 +252,13 @@ contexto
|
||||
danos
|
||||
demás
|
||||
desactivarlos
|
||||
desbloquearla
|
||||
deseleccionar
|
||||
desuscripción
|
||||
durante
|
||||
editores
|
||||
eje
|
||||
eliminarla
|
||||
eliminarlo
|
||||
eliminarlos
|
||||
ella
|
||||
|
||||
@ -60,7 +60,12 @@ async function* scanLocales() {
|
||||
async function processLocale(options, f) {
|
||||
let locales = options.locale;
|
||||
if (typeof locales === "string") {
|
||||
locales = locales.split(/,/);
|
||||
// getopts yields "" (not undefined) when -l is absent: an empty
|
||||
// list must mean "all locales", never "no locale".
|
||||
locales = locales.split(/,/).filter((s) => s !== "");
|
||||
if (locales.length === 0) {
|
||||
locales = undefined;
|
||||
}
|
||||
} else if (Array.isArray(locales)) {
|
||||
} else if (locales === undefined) {
|
||||
} else {
|
||||
@ -185,20 +190,24 @@ async function rehash(options, ...other) {
|
||||
const used = await (async function () {
|
||||
const result = {};
|
||||
|
||||
for await (const f of getFiles("src")) {
|
||||
if (!fileRe.test(f)) continue;
|
||||
// Both frontend and shared sources: common holds schemas and
|
||||
// helpers whose translation keys must stay alive as well.
|
||||
for (const dir of ["src", "../common/src"]) {
|
||||
for await (const f of getFiles(dir)) {
|
||||
if (!fileRe.test(f)) continue;
|
||||
|
||||
for await (const [n, line] of readLines(f)) {
|
||||
const strings = getTranslationStrings(line);
|
||||
for await (const [n, line] of readLines(f)) {
|
||||
const strings = getTranslationStrings(line);
|
||||
|
||||
strings.forEach((key) => {
|
||||
const entry = `${f}:${n}`;
|
||||
if (result[key] !== undefined) {
|
||||
result[key].push(entry);
|
||||
} else {
|
||||
result[key] = [entry];
|
||||
}
|
||||
});
|
||||
strings.forEach((key) => {
|
||||
const entry = `${f}:${n}`;
|
||||
if (result[key] !== undefined) {
|
||||
result[key].push(entry);
|
||||
} else {
|
||||
result[key] = [entry];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -720,7 +729,7 @@ Available subcommands (run from \`frontend/\`):
|
||||
const COMMANDS = {
|
||||
rehash: {
|
||||
args: "",
|
||||
help: 'Scan ./src for (tr "key") usages and update en.po references.',
|
||||
help: 'Scan ./src and ../common/src for (tr "key") usages and update en.po references.',
|
||||
run: (options, params) => rehash(options, ...params),
|
||||
},
|
||||
sync: {
|
||||
|
||||
@ -247,7 +247,10 @@
|
||||
|
||||
(defn handle-change-team-organization
|
||||
"Handle :team-organization-change websocket messages on dashboard and workspace.
|
||||
Updates local team organization data and redirects to SSO when required."
|
||||
Updates local team organization data and redirects to SSO when required.
|
||||
`team` and `notification` come from the server-published message (see backend
|
||||
app.rpc.notifications/notify-team-change); `notification` is a translation
|
||||
key resolved here, dynamic by design."
|
||||
[{:keys [team notification]}]
|
||||
(ptk/reify ::handle-change-team-organization
|
||||
ptk/WatchEvent
|
||||
@ -259,6 +262,11 @@
|
||||
current-team?)
|
||||
(rx/concat
|
||||
(when notification
|
||||
;; Execution time translation strings (keys sent by the backend):
|
||||
;; (tr "dashboard.team-belong-organization")
|
||||
;; (tr "dashboard.team-no-longer-belong-organization")
|
||||
;; notification is a server-provided key, dynamic by design
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
(rx/of (ntf/show {:content (tr notification (:name organization))
|
||||
:type :toast
|
||||
:level :info
|
||||
|
||||
@ -655,6 +655,11 @@
|
||||
(modal/hide)))))
|
||||
|
||||
(defn- handle-user-organization-change
|
||||
"Handle :user-organization-change websocket messages.
|
||||
`organization-id`, `organization-name` and `notification` come from the
|
||||
server-published message (see backend app.rpc.notifications/
|
||||
notify-user-organization-change); `notification` is a translation key
|
||||
resolved here, dynamic by design."
|
||||
[{:keys [organization-id organization-name notification]}]
|
||||
(ptk/reify ::handle-user-organization-change
|
||||
ptk/WatchEvent
|
||||
@ -662,6 +667,10 @@
|
||||
(when (and notification (contains? cf/flags :admin-console))
|
||||
(let [team-id (:current-team-id state)
|
||||
team (dm/get-in state [:teams team-id])]
|
||||
;; Execution time translation strings (keys sent by the backend):
|
||||
;; (tr "dashboard.user-no-longer-belong-organization")
|
||||
;; notification is a server-provided key, dynamic by design
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
(rx/of (ntf/show {:content (tr notification organization-name)
|
||||
:type :toast
|
||||
:level :info
|
||||
|
||||
@ -11,11 +11,13 @@
|
||||
[app.main.data.event :as ev]
|
||||
[app.main.data.profile :as du]
|
||||
[app.main.data.shortcuts :as ds]
|
||||
[app.main.store :as st]))
|
||||
[app.main.store :as st]
|
||||
[app.util.i18n :refer [tr]]))
|
||||
|
||||
;; Shortcuts definitions
|
||||
(def shortcuts
|
||||
{:toggle-theme {:tooltip (ds/alt "M")
|
||||
:label (fn [] (tr "shortcuts.toggle-theme"))
|
||||
:command (ds/a-mod "m")
|
||||
:section [:dashboard]
|
||||
:subsections [:generic]
|
||||
@ -24,12 +26,14 @@
|
||||
|
||||
(def shortcuts-sidebar-navigation
|
||||
{:go-to-drafts {:tooltip "G D"
|
||||
:label (fn [] (tr "shortcuts.go-to-drafts"))
|
||||
:command "g d"
|
||||
:section [:dashboard]
|
||||
:subsections [:navigation-dashboard]
|
||||
:fn #(st/emit! (dcm/go-to-dashboard-files :project-id :default))}
|
||||
|
||||
:go-to-libs {:tooltip "G L"
|
||||
:label (fn [] (tr "shortcuts.go-to-libs"))
|
||||
:command "g l"
|
||||
:section [:dashboard]
|
||||
:subsections [:navigation-dashboard]
|
||||
@ -37,6 +41,7 @@
|
||||
|
||||
(def shortcut-search
|
||||
{:go-to-search {:tooltip (ds/meta "F")
|
||||
:label (fn [] (tr "shortcuts.go-to-search"))
|
||||
:command (ds/c-mod "f")
|
||||
:section [:dashboard]
|
||||
:subsections [:navigation-dashboard]
|
||||
@ -44,6 +49,7 @@
|
||||
|
||||
(def shortcut-create-new-project
|
||||
{:create-new-project {:tooltip "+"
|
||||
:label (fn [] (tr "shortcuts.create-new-project"))
|
||||
:command "+"
|
||||
:section [:dashboard]
|
||||
:subsections [:generic]
|
||||
|
||||
@ -185,31 +185,34 @@
|
||||
(remove :is-default)
|
||||
(remove #(dm/get-in % [:permissions :is-owner])))})
|
||||
|
||||
(def ^:private team-leave-error-messages
|
||||
{:only-owner-can-delete-team "errors.team-leave.only-owner-can-delete"
|
||||
:no-enough-members-for-leave "errors.team-leave.insufficient-members"
|
||||
:member-does-not-exist "errors.team-leave.member-does-not-exists"
|
||||
:owner-cant-leave-team "errors.team-leave.owner-cant-leave"})
|
||||
(defn- team-leave-message
|
||||
[code]
|
||||
(case code
|
||||
:only-owner-can-delete-team (tr "errors.team-leave.only-owner-can-delete")
|
||||
:no-enough-members-for-leave (tr "errors.team-leave.insufficient-members")
|
||||
:member-does-not-exist (tr "errors.team-leave.member-does-not-exists")
|
||||
:owner-cant-leave-team (tr "errors.team-leave.owner-cant-leave")
|
||||
nil))
|
||||
|
||||
(defn team-leave-on-error
|
||||
[error]
|
||||
(let [code (-> error ex-data :code)]
|
||||
(if-let [tr-key (get team-leave-error-messages code)]
|
||||
(rx/of (ntf/error (tr tr-key)))
|
||||
(if-let [message (team-leave-message code)]
|
||||
(rx/of (ntf/error message))
|
||||
(rx/throw error))))
|
||||
|
||||
(def ^:private organization-leave-error-messages
|
||||
(merge team-leave-error-messages
|
||||
{:not-valid-teams "errors.organization-leave.no-valid-teams"
|
||||
:organization-owner-cannot-leave "errors.organization-leave.organization-owner-cannot-leave"}))
|
||||
|
||||
(defn org-leave-on-error
|
||||
[error]
|
||||
(let [code (-> error ex-data :code)]
|
||||
(if-let [tr-key (get organization-leave-error-messages code)]
|
||||
(let [code (-> error ex-data :code)
|
||||
message (or (team-leave-message code)
|
||||
(case code
|
||||
:not-valid-teams (tr "errors.organization-leave.no-valid-teams")
|
||||
:organization-owner-cannot-leave (tr "errors.organization-leave.organization-owner-cannot-leave")
|
||||
nil))]
|
||||
(if (some? message)
|
||||
(rx/of (dt/fetch-teams)
|
||||
(modal/hide)
|
||||
(ntf/error (tr tr-key)))
|
||||
(ntf/error message))
|
||||
(rx/throw error))))
|
||||
|
||||
(defn leave-organization
|
||||
@ -501,18 +504,18 @@
|
||||
(fn [organizations-allowed]
|
||||
(let [has-filtered? (< (count organizations) (count all-organizations))
|
||||
extra-props (when has-filtered?
|
||||
{:info-message-key "dashboard.select-organization-modal.permission-info-add"})]
|
||||
{:info-message (tr "dashboard.select-organization-modal.permission-info-add")})]
|
||||
(modal/show :select-organization-modal
|
||||
(merge {:organizations organizations
|
||||
:organizations-allowed organizations-allowed
|
||||
:current-organization current-organization
|
||||
:on-confirm on-confirm
|
||||
:team-id team-id
|
||||
:title-key "dashboard.select-organization-modal.title"
|
||||
:choose-key "dashboard.select-organization-modal.choose"
|
||||
:placeholder-key "dashboard.select-organization-modal.select"
|
||||
:accept-key "dashboard.select-organization-modal.accept"
|
||||
:cancel-key "labels.cancel"}
|
||||
:title (tr "dashboard.select-organization-modal.title")
|
||||
:choose (tr "dashboard.select-organization-modal.choose")
|
||||
:placeholder (tr "dashboard.select-organization-modal.select")
|
||||
:accept (tr "dashboard.select-organization-modal.accept")
|
||||
:cancel (tr "labels.cancel")}
|
||||
extra-props))))]
|
||||
(if (empty? organizations)
|
||||
(rx/of (dt/teams-fetched teams)
|
||||
@ -577,7 +580,7 @@
|
||||
(let [valid-organizations (filterv #(true? (get organizations-allowed (:id %))) selectable-organizations)
|
||||
has-filtered? (< (count organizations) (count all-organizations))
|
||||
extra-props (when has-filtered?
|
||||
{:info-message-key "dashboard.select-organization-modal.permission-info"})]
|
||||
{:info-message (tr "dashboard.select-organization-modal.permission-info")})]
|
||||
(rx/of
|
||||
(dt/teams-fetched teams)
|
||||
(if (empty? valid-organizations)
|
||||
@ -592,10 +595,10 @@
|
||||
:current-organization source-organization
|
||||
:on-confirm on-confirm
|
||||
:team-id team-id
|
||||
:title-key "dashboard.change-organization-modal.title"
|
||||
:description-key "dashboard.change-organization-modal.description"
|
||||
:choose-key "dashboard.change-organization-modal.choose"
|
||||
:placeholder-key "dashboard.change-organization-modal.select"
|
||||
:accept-key "dashboard.change-organization-modal.accept"
|
||||
:cancel-key "labels.cancel"}
|
||||
:title (tr "dashboard.change-organization-modal.title")
|
||||
:description (tr "dashboard.change-organization-modal.description")
|
||||
:choose (tr "dashboard.change-organization-modal.choose")
|
||||
:placeholder (tr "dashboard.change-organization-modal.select")
|
||||
:accept (tr "dashboard.change-organization-modal.accept")
|
||||
:cancel (tr "labels.cancel")}
|
||||
extra-props)))))))))))))))))
|
||||
|
||||
@ -11,16 +11,19 @@
|
||||
[app.main.data.profile :as du]
|
||||
[app.main.data.shortcuts :as ds]
|
||||
[app.main.data.viewer :as dv]
|
||||
[app.main.store :as st]))
|
||||
[app.main.store :as st]
|
||||
[app.util.i18n :refer [tr]]))
|
||||
|
||||
(def shortcuts
|
||||
{:increase-zoom {:tooltip "+"
|
||||
:label (fn [] (tr "shortcuts.increase-zoom"))
|
||||
:command "+"
|
||||
:subsections [:zoom-viewer]
|
||||
:section [:viewer]
|
||||
:fn #(st/emit! dv/increase-zoom)}
|
||||
|
||||
:toggle-theme {:tooltip (ds/alt "M")
|
||||
:label (fn [] (tr "shortcuts.toggle-theme"))
|
||||
:command (ds/a-mod "m")
|
||||
:section [:viewer]
|
||||
:subsections [:generic]
|
||||
@ -28,66 +31,77 @@
|
||||
{::ev/origin "viewer:shortcuts"}))}
|
||||
|
||||
:decrease-zoom {:tooltip "-"
|
||||
:label (fn [] (tr "shortcuts.decrease-zoom"))
|
||||
:command "-"
|
||||
:section [:viewer]
|
||||
:subsections [:zoom-viewer]
|
||||
:fn #(st/emit! dv/decrease-zoom)}
|
||||
|
||||
:select-all {:tooltip (ds/meta "A")
|
||||
:label (fn [] (tr "shortcuts.select-all"))
|
||||
:command (ds/c-mod "a")
|
||||
:section [:viewer]
|
||||
:subsections [:generic]
|
||||
:fn #(st/emit! (dv/select-all))}
|
||||
|
||||
:reset-zoom {:tooltip (ds/shift "0")
|
||||
:label (fn [] (tr "shortcuts.reset-zoom"))
|
||||
:command "shift+0"
|
||||
:section [:viewer]
|
||||
:subsections [:zoom-viewer]
|
||||
:fn #(st/emit! dv/reset-zoom)}
|
||||
|
||||
:toggle-zoom-style {:tooltip "F"
|
||||
:label (fn [] (tr "shortcuts.toggle-zoom-style"))
|
||||
:command "f"
|
||||
:section [:viewer]
|
||||
:subsections [:zoom-viewer]
|
||||
:fn #(st/emit! dv/toggle-zoom-style)}
|
||||
|
||||
:toggle-fullscreen {:tooltip (ds/shift "F")
|
||||
:label (fn [] (tr "shortcuts.toggle-fullscreen"))
|
||||
:command ["shift+f" "alt+enter"]
|
||||
:section [:viewer]
|
||||
:subsections [:zoom-viewer]
|
||||
:fn #(st/emit! dv/toggle-fullscreen)}
|
||||
|
||||
:prev-frame {:tooltip ds/left-arrow
|
||||
:label (fn [] (tr "shortcuts.prev-frame"))
|
||||
:command ["left" "up" "shift+enter" "pageup" "shift+space"]
|
||||
:subsections [:generic]
|
||||
:section [:viewer]
|
||||
:fn #(st/emit! dv/select-prev-frame)}
|
||||
|
||||
:next-frame {:tooltip ds/right-arrow
|
||||
:label (fn [] (tr "shortcuts.next-frame"))
|
||||
:command ["right" "down" "enter" "pagedown" "space"]
|
||||
:subsections [:generic]
|
||||
:section [:viewer]
|
||||
:fn #(st/emit! dv/select-next-frame)}
|
||||
|
||||
:open-inspect {:tooltip "G I"
|
||||
:label (fn [] (tr "shortcuts.open-inspect"))
|
||||
:command "g i"
|
||||
:subsections [:navigation-viewer]
|
||||
:section [:viewer]
|
||||
:fn #(st/emit! (dv/go-to-section :inspect))}
|
||||
|
||||
:open-comments {:tooltip "G C"
|
||||
:label (fn [] (tr "shortcuts.open-comments"))
|
||||
:command "g c"
|
||||
:subsections [:navigation-viewer]
|
||||
:section [:viewer]
|
||||
:fn #(st/emit! (dv/go-to-section :comments))}
|
||||
|
||||
:open-interactions {:tooltip "G V"
|
||||
:label (fn [] (tr "shortcuts.open-interactions"))
|
||||
:command "g v"
|
||||
:subsections [:navigation-viewer]
|
||||
:section [:viewer]
|
||||
:fn #(st/emit! (dv/go-to-section :interactions))}
|
||||
|
||||
:open-workspace {:tooltip "G W"
|
||||
:label (fn [] (tr "shortcuts.open-workspace"))
|
||||
:command "g w"
|
||||
:subsections [:navigation-viewer]
|
||||
:section [:viewer]
|
||||
|
||||
@ -45,9 +45,9 @@
|
||||
(let [visible? (contains? (:workspace-layout state) :display-comments)]
|
||||
(rx/of (vary-meta (dwlo/toggle-layout-flag :display-comments)
|
||||
assoc ::ev/origin (or origin "workspace"))
|
||||
(ntf/success (tr (if visible?
|
||||
"workspace.toast.comments-hidden"
|
||||
"workspace.toast.comments-visible"))))))))
|
||||
(ntf/success (if visible?
|
||||
(tr "workspace.toast.comments-hidden")
|
||||
(tr "workspace.toast.comments-visible"))))))))
|
||||
|
||||
(defn initialize-comments
|
||||
[file-id]
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
[app.main.data.workspace :as dw]
|
||||
[app.main.data.workspace.undo :as dwu]
|
||||
[app.main.store :as st]
|
||||
[app.util.i18n :refer [tr]]
|
||||
[beicon.v2.core :as rx]
|
||||
[potok.v2.core :as ptk]))
|
||||
|
||||
@ -33,16 +34,19 @@
|
||||
|
||||
(def shortcuts
|
||||
{:escape {:tooltip (ds/esc)
|
||||
:label (fn [] (tr "shortcuts.escape"))
|
||||
:command ["escape" "enter" "v"]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (esc-pressed))}
|
||||
|
||||
:undo {:tooltip (ds/meta "Z")
|
||||
:label (fn [] (tr "shortcuts.undo"))
|
||||
:command (ds/c-mod "z")
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dwu/undo)}
|
||||
|
||||
:redo {:tooltip (ds/meta "Y")
|
||||
:label (fn [] (tr "shortcuts.redo"))
|
||||
:command [(ds/c-mod "shift+z") (ds/c-mod "y")]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dwu/redo)}
|
||||
@ -50,26 +54,31 @@
|
||||
;; ZOOM
|
||||
|
||||
:increase-zoom {:tooltip "+"
|
||||
:label (fn [] (tr "shortcuts.increase-zoom"))
|
||||
:command "+"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/increase-zoom nil))}
|
||||
|
||||
:decrease-zoom {:tooltip "-"
|
||||
:label (fn [] (tr "shortcuts.decrease-zoom"))
|
||||
:command "-"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/decrease-zoom nil))}
|
||||
|
||||
:reset-zoom {:tooltip (ds/shift "0")
|
||||
:label (fn [] (tr "shortcuts.reset-zoom"))
|
||||
:command "shift+0"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/reset-zoom)}
|
||||
|
||||
:fit-all {:tooltip (ds/shift "1")
|
||||
:label (fn [] (tr "shortcuts.fit-all"))
|
||||
:command "shift+1"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/zoom-to-fit-all)}
|
||||
|
||||
:zoom-selected {:tooltip (ds/shift "2")
|
||||
:label (fn [] (tr "shortcuts.zoom-selected"))
|
||||
:command "shift+2"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/zoom-to-selected-shape)}})
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
[app.main.data.workspace.path.common :as drp.common]
|
||||
[app.main.data.workspace.path.state :as drp.state]
|
||||
[app.main.store :as st]
|
||||
[app.util.i18n :refer [tr]]
|
||||
[beicon.v2.core :as rx]
|
||||
[potok.v2.core :as ptk]))
|
||||
|
||||
@ -42,12 +43,14 @@
|
||||
|
||||
(def shortcuts
|
||||
{:move-nodes {:tooltip "M"
|
||||
:label (fn [] (tr "shortcuts.move-nodes"))
|
||||
:command "m"
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/change-edit-mode :move))}
|
||||
|
||||
:draw-nodes {:tooltip "P"
|
||||
:label (fn [] (tr "shortcuts.draw-nodes"))
|
||||
:command "p"
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
@ -55,12 +58,14 @@
|
||||
:fn #(st/emit! (drp/change-edit-mode :draw))}
|
||||
|
||||
:add-node {:tooltip (ds/shift "+")
|
||||
:label (fn [] (tr "shortcuts.add-node"))
|
||||
:command "shift++"
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/add-node))}
|
||||
|
||||
:delete-node {:tooltip (ds/supr)
|
||||
:label (fn [] (tr "shortcuts.delete-node"))
|
||||
:command ["del" "backspace"]
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
@ -68,23 +73,27 @@
|
||||
:fn #(st/emit! (drp/delete-selected))}
|
||||
|
||||
:delete-node-and-segments {:tooltip (ds/shift (ds/supr))
|
||||
:label (fn [] (tr "shortcuts.delete-node-and-segments"))
|
||||
:command ["shift+del" "shift+backspace"]
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/delete-selected-with-segments))}
|
||||
|
||||
:merge-nodes {:tooltip (ds/meta "J")
|
||||
:label (fn [] (tr "shortcuts.merge-nodes"))
|
||||
:command (ds/c-mod "j")
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/merge-nodes))}
|
||||
|
||||
:join-nodes {:tooltip "J"
|
||||
:label (fn [] (tr "shortcuts.join-nodes"))
|
||||
:command "j"
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/join-nodes))}
|
||||
|
||||
:separate-nodes {:tooltip "K"
|
||||
:label (fn [] (tr "shortcuts.separate-nodes"))
|
||||
:command "k"
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
@ -92,12 +101,14 @@
|
||||
:fn #(st/emit! (drp/separate-nodes))}
|
||||
|
||||
:make-corner {:tooltip "X"
|
||||
:label (fn [] (tr "shortcuts.make-corner"))
|
||||
:command "x"
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/make-corner))}
|
||||
|
||||
:make-curve {:tooltip "C"
|
||||
:label (fn [] (tr "shortcuts.make-curve"))
|
||||
:command "c"
|
||||
:subsections [:path-editor]
|
||||
:section [:workspace]
|
||||
@ -105,6 +116,7 @@
|
||||
:fn #(st/emit! (drp/make-curve))}
|
||||
|
||||
:snap-nodes {:tooltip (ds/meta "'")
|
||||
:label (fn [] (tr "shortcuts.snap-nodes"))
|
||||
;;https://github.com/ccampbell/mousetrap/issues/85
|
||||
:command [(ds/c-mod "'") (ds/c-mod "219")]
|
||||
:subsections [:path-editor]
|
||||
@ -112,46 +124,55 @@
|
||||
:fn #(st/emit! (drp/toggle-snap))}
|
||||
|
||||
:copy {:tooltip (ds/meta "C")
|
||||
:label (fn [] (tr "shortcuts.copy"))
|
||||
:command (ds/c-mod "c")
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/copy-selected-nodes))}
|
||||
|
||||
:cut {:tooltip (ds/meta "X")
|
||||
:label (fn [] (tr "shortcuts.cut"))
|
||||
:command (ds/c-mod "x")
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/cut-selected-nodes))}
|
||||
|
||||
:paste {:tooltip (ds/meta "V")
|
||||
:label (fn [] (tr "shortcuts.paste"))
|
||||
:command (ds/c-mod "v")
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/paste-nodes))}
|
||||
|
||||
:duplicate {:tooltip (ds/meta "D")
|
||||
:label (fn [] (tr "shortcuts.duplicate"))
|
||||
:command (ds/c-mod "d")
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/duplicate-selected))}
|
||||
|
||||
:select-all {:tooltip (ds/meta "A")
|
||||
:label (fn [] (tr "shortcuts.select-all"))
|
||||
:command (ds/c-mod "a")
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/select-all-nodes))}
|
||||
|
||||
:deselect-all {:tooltip (ds/meta (ds/shift "A"))
|
||||
:label (fn [] (tr "shortcuts.deselect-all"))
|
||||
:command (ds/c-mod "shift+a")
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/deselect-all))}
|
||||
|
||||
:flip-horizontal {:tooltip (ds/shift "H")
|
||||
:label (fn [] (tr "shortcuts.flip-horizontal"))
|
||||
:command "shift+h"
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/flip-nodes :horizontal))}
|
||||
|
||||
:flip-vertical {:tooltip (ds/shift "V")
|
||||
:label (fn [] (tr "shortcuts.flip-vertical"))
|
||||
:command "shift+v"
|
||||
:subsections [:path-editor]
|
||||
:fn #(st/emit! (drp/flip-nodes :vertical))}
|
||||
|
||||
:escape {:tooltip (ds/esc)
|
||||
:label (fn [] (tr "shortcuts.escape"))
|
||||
:command ["escape" "v"]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (esc-pressed))}
|
||||
@ -163,17 +184,20 @@
|
||||
;; (which enters path edit mode) instead of both ending up bound
|
||||
;; to the same physical key at once.
|
||||
:start-editing {:tooltip (ds/enter)
|
||||
:label (fn [] (tr "shortcuts.start-editing"))
|
||||
:command "enter"
|
||||
:section [:workspace]
|
||||
:overwrite true
|
||||
:fn #(st/emit! (esc-pressed))}
|
||||
|
||||
:undo {:tooltip (ds/meta "Z")
|
||||
:label (fn [] (tr "shortcuts.undo"))
|
||||
:command (ds/c-mod "z")
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/undo-path))}
|
||||
|
||||
:redo {:tooltip (ds/meta "Y")
|
||||
:label (fn [] (tr "shortcuts.redo"))
|
||||
:command [(ds/c-mod "shift+z") (ds/c-mod "y")]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/redo-path))}
|
||||
@ -181,26 +205,31 @@
|
||||
;; ZOOM
|
||||
|
||||
:increase-zoom {:tooltip "+"
|
||||
:label (fn [] (tr "shortcuts.increase-zoom"))
|
||||
:command "+"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/increase-zoom nil))}
|
||||
|
||||
:decrease-zoom {:tooltip "-"
|
||||
:label (fn [] (tr "shortcuts.decrease-zoom"))
|
||||
:command "-"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/decrease-zoom nil))}
|
||||
|
||||
:reset-zoom {:tooltip (ds/shift "0")
|
||||
:label (fn [] (tr "shortcuts.reset-zoom"))
|
||||
:command "shift+0"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/reset-zoom)}
|
||||
|
||||
:fit-all {:tooltip (ds/shift "1")
|
||||
:label (fn [] (tr "shortcuts.fit-all"))
|
||||
:command "shift+1"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/zoom-to-fit-all)}
|
||||
|
||||
:zoom-selected {:tooltip (ds/shift "2")
|
||||
:label (fn [] (tr "shortcuts.zoom-selected"))
|
||||
:command "shift+2"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/zoom-to-selected-shape)}
|
||||
@ -208,41 +237,49 @@
|
||||
;; Arrow movement
|
||||
|
||||
:move-fast-up {:tooltip (ds/shift ds/up-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-up"))
|
||||
:command "shift+up"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :up true))}
|
||||
|
||||
:move-fast-down {:tooltip (ds/shift ds/down-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-down"))
|
||||
:command "shift+down"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :down true))}
|
||||
|
||||
:move-fast-right {:tooltip (ds/shift ds/right-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-right"))
|
||||
:command "shift+right"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :right true))}
|
||||
|
||||
:move-fast-left {:tooltip (ds/shift ds/left-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-left"))
|
||||
:command "shift+left"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :left true))}
|
||||
|
||||
:move-unit-up {:tooltip ds/up-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-up"))
|
||||
:command "up"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :up false))}
|
||||
|
||||
:move-unit-down {:tooltip ds/down-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-down"))
|
||||
:command "down"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :down false))}
|
||||
|
||||
:move-unit-left {:tooltip ds/right-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-left"))
|
||||
:command "right"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :right false))}
|
||||
|
||||
:move-unit-right {:tooltip ds/left-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-right"))
|
||||
:command "left"
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (drp/move-selected :left false))}})
|
||||
|
||||
@ -32,7 +32,8 @@
|
||||
[app.main.refs :as refs]
|
||||
[app.main.store :as st]
|
||||
[app.main.ui.hooks.resize :as r]
|
||||
[app.util.dom :as dom]))
|
||||
[app.util.dom :as dom]
|
||||
[app.util.i18n :refer [tr]]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Shortcuts
|
||||
@ -68,36 +69,42 @@
|
||||
(def base-shortcuts
|
||||
{;; EDIT
|
||||
:undo {:tooltip (ds/meta "Z")
|
||||
:label (fn [] (tr "shortcuts.undo"))
|
||||
:command (ds/c-mod "z")
|
||||
:section [:workspace]
|
||||
:subsections [:edit]
|
||||
:fn #(emit-when-no-readonly dwu/undo)}
|
||||
|
||||
:redo {:tooltip (ds/meta "Y")
|
||||
:label (fn [] (tr "shortcuts.redo"))
|
||||
:command [(ds/c-mod "shift+z") (ds/c-mod "y")]
|
||||
:section [:workspace]
|
||||
:subsections [:edit]
|
||||
:fn #(emit-when-no-readonly dwu/redo)}
|
||||
|
||||
:clear-undo {:tooltip (ds/alt "Q")
|
||||
:label (fn [] (tr "shortcuts.clear-undo"))
|
||||
:command "alt+q"
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly dwu/reinitialize-undo)}
|
||||
|
||||
:copy {:tooltip (ds/meta "C")
|
||||
:label (fn [] (tr "shortcuts.copy"))
|
||||
:command (ds/c-mod "c")
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/copy-selected))}
|
||||
|
||||
:copy-link {:tooltip (ds/shift (ds/alt "C"))
|
||||
:label (fn [] (tr "shortcuts.copy-link"))
|
||||
:command "shift+alt+c"
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/copy-link-to-clipboard))}
|
||||
|
||||
:cut {:tooltip (ds/meta "X")
|
||||
:label (fn [] (tr "shortcuts.cut"))
|
||||
:command (ds/c-mod "x")
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
@ -106,6 +113,7 @@
|
||||
(dw/delete-selected))}
|
||||
|
||||
:paste {:tooltip (ds/meta "V")
|
||||
:label (fn [] (tr "shortcuts.paste"))
|
||||
:disabled true
|
||||
:command (ds/c-mod "v")
|
||||
:subsections [:edit]
|
||||
@ -114,42 +122,49 @@
|
||||
:fn (constantly nil)}
|
||||
|
||||
:paste-replace {:tooltip (ds/meta (ds/shift "V"))
|
||||
:label (fn [] (tr "shortcuts.paste-replace"))
|
||||
:command (ds/c-mod "shift+v")
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/paste-from-clipboard {:replace? true}))}
|
||||
|
||||
:copy-props {:tooltip (ds/meta (ds/alt "c"))
|
||||
:label (fn [] (tr "shortcuts.copy-props"))
|
||||
:command (ds/c-mod "alt+c")
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/copy-selected-props))}
|
||||
|
||||
:paste-props {:tooltip (ds/meta (ds/alt "v"))
|
||||
:label (fn [] (tr "shortcuts.paste-props"))
|
||||
:command (ds/c-mod "alt+v")
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/paste-selected-props))}
|
||||
|
||||
:delete {:tooltip (ds/supr)
|
||||
:label (fn [] (tr "shortcuts.delete"))
|
||||
:command ["del" "backspace"]
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/delete-selected))}
|
||||
|
||||
:duplicate {:tooltip (ds/meta "D")
|
||||
:label (fn [] (tr "shortcuts.duplicate"))
|
||||
:command (ds/c-mod "d")
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwv/duplicate-or-add-variant))}
|
||||
|
||||
:start-editing {:tooltip (ds/enter)
|
||||
:label (fn [] (tr "shortcuts.start-editing"))
|
||||
:command "enter"
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/start-editing-selected))}
|
||||
|
||||
:show-measure {:tooltip (ds/alt "")
|
||||
:label (fn [] (tr "shortcuts.show-measure"))
|
||||
:command ["alt" "."]
|
||||
:type ["keydown" "keyup"]
|
||||
:subsections [:tools]
|
||||
@ -159,152 +174,178 @@
|
||||
(dw/toggle-distances-display (if (= type "keydown") true false))))}
|
||||
|
||||
:escape {:tooltip (ds/esc)
|
||||
:label (fn [] (tr "shortcuts.escape"))
|
||||
:command "escape"
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! :interrupt (dwdc/clear-drawing) (dw/deselect-all true))}
|
||||
|
||||
:find {:tooltip (ds/meta "F") :command (ds/c-mod "f") :subsections [:edit]
|
||||
:label (fn [] (tr "shortcuts.find"))
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/open-layers-search :find))}
|
||||
:find-and-replace {:tooltip (ds/meta "H") :command (ds/c-mod "h") :subsections [:edit]
|
||||
:label (fn [] (tr "shortcuts.find-and-replace"))
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/open-layers-search :find-and-replace))}
|
||||
|
||||
;; MODIFY LAYERS
|
||||
|
||||
:rename {:tooltip (ds/alt "N")
|
||||
:label (fn [] (tr "shortcuts.rename"))
|
||||
:command "alt+n"
|
||||
:subsections [:edit]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/start-rename-selected))}
|
||||
|
||||
:group {:tooltip (ds/meta "G")
|
||||
:label (fn [] (tr "shortcuts.group"))
|
||||
:command (ds/c-mod "g")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/group-selected))}
|
||||
|
||||
:ungroup {:tooltip (ds/shift "G")
|
||||
:label (fn [] (tr "shortcuts.ungroup"))
|
||||
:command "shift+g"
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/ungroup-selected))}
|
||||
|
||||
:mask {:tooltip (ds/meta "M")
|
||||
:label (fn [] (tr "shortcuts.mask"))
|
||||
:command (ds/c-mod "m")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/mask-group))}
|
||||
|
||||
:unmask {:tooltip (ds/meta-shift "M")
|
||||
:label (fn [] (tr "shortcuts.unmask"))
|
||||
:command (ds/c-mod "shift+m")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/unmask-group))}
|
||||
|
||||
:create-component-variant {:tooltip (ds/meta "K")
|
||||
:label (fn [] (tr "shortcuts.create-component-variant"))
|
||||
:command (ds/c-mod "k")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwv/add-component-or-variant))}
|
||||
|
||||
:detach-component {:tooltip (ds/meta-shift "K")
|
||||
:label (fn [] (tr "shortcuts.detach-component"))
|
||||
:command (ds/c-mod "shift+k")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly dwl/detach-selected-components)}
|
||||
|
||||
:flip-vertical {:tooltip (ds/shift "V")
|
||||
:label (fn [] (tr "shortcuts.flip-vertical"))
|
||||
:command "shift+v"
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/flip-vertical-selected))}
|
||||
|
||||
:flip-horizontal {:tooltip (ds/shift "H")
|
||||
:label (fn [] (tr "shortcuts.flip-horizontal"))
|
||||
:command "shift+h"
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/flip-horizontal-selected))}
|
||||
:bring-forward {:tooltip (ds/meta ds/up-arrow)
|
||||
:label (fn [] (tr "shortcuts.bring-forward"))
|
||||
:command (ds/c-mod "up")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/vertical-order-selected :up))}
|
||||
|
||||
:bring-backward {:tooltip (ds/meta ds/down-arrow)
|
||||
:label (fn [] (tr "shortcuts.bring-backward"))
|
||||
:command (ds/c-mod "down")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/vertical-order-selected :down))}
|
||||
|
||||
:bring-front {:tooltip (ds/meta-shift ds/up-arrow)
|
||||
:label (fn [] (tr "shortcuts.bring-front"))
|
||||
:command (ds/c-mod "shift+up")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/vertical-order-selected :top))}
|
||||
|
||||
:bring-back {:tooltip (ds/meta-shift ds/down-arrow)
|
||||
:label (fn [] (tr "shortcuts.bring-back"))
|
||||
:command (ds/c-mod "shift+down")
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/vertical-order-selected :bottom))}
|
||||
|
||||
:move-fast-up {:tooltip (ds/shift ds/up-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-up"))
|
||||
:command ["shift+up" "shift+alt+up"]
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :up true))}
|
||||
|
||||
:move-fast-down {:tooltip (ds/shift ds/down-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-down"))
|
||||
:command ["shift+down" "shift+alt+down"]
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :down true))}
|
||||
|
||||
:move-fast-right {:tooltip (ds/shift ds/right-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-right"))
|
||||
:command ["shift+right" "shift+alt+right"]
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :right true))}
|
||||
|
||||
:move-fast-left {:tooltip (ds/shift ds/left-arrow)
|
||||
:label (fn [] (tr "shortcuts.move-fast-left"))
|
||||
:command ["shift+left" "shift+alt+left"]
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :left true))}
|
||||
|
||||
:move-unit-up {:tooltip ds/up-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-up"))
|
||||
:command ["up" "alt+up"]
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :up false))}
|
||||
|
||||
:move-unit-down {:tooltip ds/down-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-down"))
|
||||
:command ["down" "alt+down"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :down false))}
|
||||
|
||||
:move-unit-left {:tooltip ds/right-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-left"))
|
||||
:command ["right" "alt+right"]
|
||||
:subsections [:modify-layers]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :right false))}
|
||||
|
||||
:move-unit-right {:tooltip ds/left-arrow
|
||||
:label (fn [] (tr "shortcuts.move-unit-right"))
|
||||
:command ["left" "alt+left"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwt/move-selected :left false))}
|
||||
|
||||
:artboard-selection {:tooltip (ds/meta (ds/alt "G"))
|
||||
:label (fn [] (tr "shortcuts.artboard-selection"))
|
||||
:command (ds/c-mod "alt+g")
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dws/create-artboard-from-selection))}
|
||||
|
||||
:toggle-layout-flex {:tooltip (ds/shift "A")
|
||||
:label (fn [] (tr "shortcuts.toggle-layout-flex"))
|
||||
:command "shift+a"
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
@ -313,6 +354,7 @@
|
||||
{::ev/origin "workspace:shortcuts"}))}
|
||||
|
||||
:toggle-layout-grid {:tooltip (ds/meta-shift "A")
|
||||
:label (fn [] (tr "shortcuts.toggle-layout-grid"))
|
||||
:command (ds/c-mod "shift+a")
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
@ -322,30 +364,35 @@
|
||||
;; TOOLS
|
||||
|
||||
:draw-frame {:tooltip "B"
|
||||
:label (fn [] (tr "shortcuts.draw-frame"))
|
||||
:command ["b" "a"]
|
||||
:section [:workspace :basics]
|
||||
:subsections [:tools :basics]
|
||||
:fn #(emit-when-no-readonly (dwd/select-for-drawing :frame))}
|
||||
|
||||
:move {:tooltip "V"
|
||||
:label (fn [] (tr "shortcuts.move"))
|
||||
:command "v"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly :interrupt)}
|
||||
|
||||
:draw-rect {:tooltip "R"
|
||||
:label (fn [] (tr "shortcuts.draw-rect"))
|
||||
:command "r"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (dwd/select-for-drawing :rect))}
|
||||
|
||||
:draw-ellipse {:tooltip "E"
|
||||
:label (fn [] (tr "shortcuts.draw-ellipse"))
|
||||
:command "e"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (dwd/select-for-drawing :circle))}
|
||||
|
||||
:draw-text {:tooltip "T"
|
||||
:label (fn [] (tr "shortcuts.draw-text"))
|
||||
:command "t"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
@ -353,30 +400,35 @@
|
||||
(dwd/select-for-drawing :text))}
|
||||
|
||||
:draw-path {:tooltip "P"
|
||||
:label (fn [] (tr "shortcuts.draw-path"))
|
||||
:command "p"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (dwd/select-for-drawing :path))}
|
||||
|
||||
:draw-line {:tooltip "L"
|
||||
:label (fn [] (tr "shortcuts.draw-line"))
|
||||
:command "l"
|
||||
:subsections [:tools]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwd/select-for-drawing :line))}
|
||||
|
||||
:draw-arrow {:tooltip (ds/shift "L")
|
||||
:label (fn [] (tr "shortcuts.draw-arrow"))
|
||||
:command "shift+l"
|
||||
:subsections [:tools]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dwd/select-for-drawing :arrow))}
|
||||
|
||||
:draw-curve {:tooltip (ds/shift "C")
|
||||
:label (fn [] (tr "shortcuts.draw-curve"))
|
||||
:command "shift+c"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (dwd/select-for-drawing :curve))}
|
||||
|
||||
:add-comment {:tooltip "C"
|
||||
:label (fn [] (tr "shortcuts.add-comment"))
|
||||
:command "c"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
@ -384,48 +436,56 @@
|
||||
|
||||
:toggle-comments-visibility
|
||||
{:tooltip (ds/meta-shift "C")
|
||||
:label (fn [] (tr "shortcuts.toggle-comments-visibility"))
|
||||
:command (ds/c-mod "shift+c")
|
||||
:section [:workspace]
|
||||
:subsections [:main-menu]
|
||||
:fn #(st/emit! (dwcm/toggle-comments-visibility {:origin "workspace-shortcuts"}))}
|
||||
|
||||
:insert-image {:tooltip (ds/shift "K")
|
||||
:label (fn [] (tr "shortcuts.insert-image"))
|
||||
:command "shift+k"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(-> "image-upload" dom/get-element dom/click)}
|
||||
|
||||
:toggle-visibility {:tooltip (ds/meta-shift "H")
|
||||
:label (fn [] (tr "shortcuts.toggle-visibility"))
|
||||
:command (ds/c-mod "shift+h")
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (dw/toggle-visibility-selected))}
|
||||
|
||||
:toggle-lock {:tooltip (ds/meta-shift "L")
|
||||
:label (fn [] (tr "shortcuts.toggle-lock"))
|
||||
:command (ds/c-mod "shift+l")
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (dw/toggle-lock-selected))}
|
||||
|
||||
:toggle-lock-size {:tooltip (ds/shift "L")
|
||||
:label (fn [] (tr "shortcuts.toggle-lock-size"))
|
||||
:command "shift+l"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (dw/toggle-proportion-lock))}
|
||||
|
||||
:scale {:tooltip "K"
|
||||
:label (fn [] (tr "shortcuts.scale"))
|
||||
:command "k"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (toggle-layout-flag :scale-text))}
|
||||
|
||||
:open-color-picker {:tooltip "I"
|
||||
:label (fn [] (tr "shortcuts.open-color-picker"))
|
||||
:command "i"
|
||||
:section [:workspace]
|
||||
:subsections [:tools]
|
||||
:fn #(emit-when-no-readonly (mdc/picker-for-selected-shape))}
|
||||
|
||||
:toggle-focus-mode {:command "f"
|
||||
:label (fn [] (tr "shortcuts.toggle-focus-mode"))
|
||||
:tooltip "F"
|
||||
:section [:workspace :basics]
|
||||
:subsections [:basics :tools]
|
||||
@ -434,48 +494,56 @@
|
||||
;; ITEM ALIGNMENT
|
||||
|
||||
:align-left {:tooltip (ds/alt "A")
|
||||
:label (fn [] (tr "shortcuts.align-left"))
|
||||
:command "alt+a"
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
:fn #(emit-when-no-readonly (dw/align-objects :hleft))}
|
||||
|
||||
:align-right {:tooltip (ds/alt "D")
|
||||
:label (fn [] (tr "shortcuts.align-right"))
|
||||
:command "alt+d"
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
:fn #(emit-when-no-readonly (dw/align-objects :hright))}
|
||||
|
||||
:align-top {:tooltip (ds/alt "W")
|
||||
:label (fn [] (tr "shortcuts.align-top"))
|
||||
:command "alt+w"
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
:fn #(emit-when-no-readonly (dw/align-objects :vtop))}
|
||||
|
||||
:align-hcenter {:tooltip (ds/alt "H")
|
||||
:label (fn [] (tr "shortcuts.align-hcenter"))
|
||||
:command "alt+h"
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
:fn #(emit-when-no-readonly (dw/align-objects :hcenter))}
|
||||
|
||||
:align-vcenter {:tooltip (ds/alt "V")
|
||||
:label (fn [] (tr "shortcuts.align-vcenter"))
|
||||
:command "alt+v"
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
:fn #(emit-when-no-readonly (dw/align-objects :vcenter))}
|
||||
|
||||
:align-bottom {:tooltip (ds/alt "S")
|
||||
:label (fn [] (tr "shortcuts.align-bottom"))
|
||||
:command "alt+s"
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
:fn #(emit-when-no-readonly (dw/align-objects :vbottom))}
|
||||
|
||||
:h-distribute {:tooltip (ds/meta-shift (ds/alt "H"))
|
||||
:label (fn [] (tr "shortcuts.h-distribute"))
|
||||
:command (ds/c-mod "shift+alt+h")
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
:fn #(emit-when-no-readonly (dw/distribute-objects :horizontal))}
|
||||
|
||||
:v-distribute {:tooltip (ds/meta-shift (ds/alt "V"))
|
||||
:label (fn [] (tr "shortcuts.v-distribute"))
|
||||
:command (ds/c-mod "shift+alt+v")
|
||||
:section [:workspace]
|
||||
:subsections [:alignment]
|
||||
@ -484,18 +552,21 @@
|
||||
;; MAIN MENU
|
||||
|
||||
:toggle-rulers {:tooltip (ds/meta-shift "R")
|
||||
:label (fn [] (tr "shortcuts.toggle-rulers"))
|
||||
:command (ds/c-mod "shift+r")
|
||||
:section [:workspace]
|
||||
:subsections [:main-menu]
|
||||
:fn #(st/emit! (toggle-layout-flag :rulers))}
|
||||
|
||||
:select-all {:tooltip (ds/meta "A")
|
||||
:label (fn [] (tr "shortcuts.select-all"))
|
||||
:command (ds/c-mod "a")
|
||||
:section [:workspace]
|
||||
:subsections [:main-menu]
|
||||
:fn #(st/emit! (dw/select-all))}
|
||||
|
||||
:toggle-guides {:tooltip (ds/meta "'")
|
||||
:label (fn [] (tr "shortcuts.toggle-guides"))
|
||||
;;https://github.com/ccampbell/mousetrap/issues/85
|
||||
:command [(ds/c-mod "'") (ds/c-mod "219")]
|
||||
:show-command (ds/c-mod "'")
|
||||
@ -504,30 +575,35 @@
|
||||
:fn #(st/emit! (toggle-layout-flag :display-guides))}
|
||||
|
||||
:toggle-alignment {:tooltip (ds/meta "\\")
|
||||
:label (fn [] (tr "shortcuts.toggle-alignment"))
|
||||
:command (ds/c-mod "\\")
|
||||
:subsections [:main-menu]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (toggle-layout-flag :dynamic-alignment))}
|
||||
|
||||
:thumbnail-set {:tooltip (ds/shift "T")
|
||||
:label (fn [] (tr "shortcuts.thumbnail-set"))
|
||||
:command "shift+t"
|
||||
:subsections [:main-menu]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/toggle-file-thumbnail-selected))}
|
||||
|
||||
:show-pixel-grid {:tooltip (ds/shift ",")
|
||||
:label (fn [] (tr "shortcuts.show-pixel-grid"))
|
||||
:command "shift+,"
|
||||
:subsections [:main-menu]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (toggle-layout-flag :show-pixel-grid))}
|
||||
|
||||
:snap-pixel-grid {:command ","
|
||||
:label (fn [] (tr "shortcuts.snap-pixel-grid"))
|
||||
:tooltip ","
|
||||
:subsections [:main-menu]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (toggle-layout-flag :snap-pixel-grid))}
|
||||
|
||||
:export-shapes {:tooltip (ds/meta-shift "E")
|
||||
:label (fn [] (tr "shortcuts.export-shapes"))
|
||||
:command (ds/c-mod "shift+e")
|
||||
:subsections [:basics :main-menu]
|
||||
:section [:workspace :basics]
|
||||
@ -535,12 +611,14 @@
|
||||
(de/show-workspace-export-dialog {:origin "workspace:shortcuts"}))}
|
||||
|
||||
:toggle-snap-ruler-guide {:tooltip (ds/meta-shift "G")
|
||||
:label (fn [] (tr "shortcuts.toggle-snap-ruler-guide"))
|
||||
:command (ds/c-mod "shift+g")
|
||||
:subsections [:main-menu]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (toggle-layout-flag :snap-ruler-guides))}
|
||||
|
||||
:toggle-snap-guides {:tooltip (ds/meta-shift "'")
|
||||
:label (fn [] (tr "shortcuts.toggle-snap-guides"))
|
||||
;;https://github.com/ccampbell/mousetrap/issues/85
|
||||
:command [(ds/c-mod "shift+'") (ds/c-mod "shift+219")]
|
||||
:show-command (ds/c-mod "shift+'")
|
||||
@ -549,6 +627,7 @@
|
||||
:fn #(st/emit! (toggle-layout-flag :snap-guides))}
|
||||
|
||||
:show-shortcuts {:tooltip "?"
|
||||
:label (fn [] (tr "shortcuts.show-shortcuts"))
|
||||
:command "?"
|
||||
:subsections [:main-menu]
|
||||
:section [:workspace]
|
||||
@ -557,18 +636,21 @@
|
||||
;; PANELS
|
||||
|
||||
:toggle-layers {:tooltip (ds/alt "L")
|
||||
:label (fn [] (tr "shortcuts.toggle-layers"))
|
||||
:command (ds/a-mod "l")
|
||||
:subsections [:panels]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dcm/go-to-workspace :layout :layers))}
|
||||
|
||||
:toggle-assets {:tooltip (ds/alt "I")
|
||||
:label (fn [] (tr "shortcuts.toggle-assets"))
|
||||
:command (ds/a-mod "i")
|
||||
:subsections [:panels]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dcm/go-to-workspace :layout :assets))}
|
||||
|
||||
:toggle-history {:tooltip (ds/meta-alt "H")
|
||||
:label (fn [] (tr "shortcuts.toggle-history"))
|
||||
:command (ds/ca-mod "h")
|
||||
:subsections [:panels]
|
||||
:section [:workspace]
|
||||
@ -576,6 +658,7 @@
|
||||
(dw/toggle-layout-flag :document-history))}
|
||||
|
||||
:toggle-colorpalette {:tooltip (ds/alt "P")
|
||||
:label (fn [] (tr "shortcuts.toggle-colorpalette"))
|
||||
:command (ds/a-mod "p")
|
||||
:subsections [:panels]
|
||||
:section [:workspace]
|
||||
@ -585,6 +668,7 @@
|
||||
(toggle-layout-flag :colorpalette)))}
|
||||
|
||||
:toggle-textpalette {:tooltip (ds/alt "T")
|
||||
:label (fn [] (tr "shortcuts.toggle-textpalette"))
|
||||
:command (ds/a-mod "t")
|
||||
:subsections [:panels]
|
||||
:section [:workspace]
|
||||
@ -594,6 +678,7 @@
|
||||
(toggle-layout-flag :textpalette)))}
|
||||
|
||||
:hide-ui {:tooltip "\\"
|
||||
:label (fn [] (tr "shortcuts.hide-ui"))
|
||||
:command "\\"
|
||||
:subsections [:panels :basics]
|
||||
:section [:workspace :basics]
|
||||
@ -602,42 +687,49 @@
|
||||
;; ZOOM-WORKSPACE
|
||||
|
||||
:increase-zoom {:tooltip "+"
|
||||
:label (fn [] (tr "shortcuts.increase-zoom"))
|
||||
:command ["+" "="]
|
||||
:subsections [:zoom-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/increase-zoom))}
|
||||
|
||||
:decrease-zoom {:tooltip "-"
|
||||
:label (fn [] (tr "shortcuts.decrease-zoom"))
|
||||
:command ["-" "_"]
|
||||
:subsections [:zoom-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/decrease-zoom))}
|
||||
|
||||
:reset-zoom {:tooltip (ds/shift "0")
|
||||
:label (fn [] (tr "shortcuts.reset-zoom"))
|
||||
:command ["shift+0" "shift+num0"]
|
||||
:subsections [:zoom-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/reset-zoom)}
|
||||
|
||||
:fit-all {:tooltip (ds/shift "1")
|
||||
:label (fn [] (tr "shortcuts.fit-all"))
|
||||
:command ["shift+1" "shift+num1"]
|
||||
:subsections [:zoom-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/zoom-to-fit-all)}
|
||||
|
||||
:zoom-selected {:tooltip (ds/shift "2")
|
||||
:label (fn [] (tr "shortcuts.zoom-selected"))
|
||||
:command ["shift+2" "shift+num2" "@" "\""]
|
||||
:subsections [:zoom-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! dw/zoom-to-selected-shape)}
|
||||
|
||||
:zoom-lense-increase {:tooltip "Z"
|
||||
:label (fn [] (tr "shortcuts.zoom-lense-increase"))
|
||||
:command "z"
|
||||
:subsections [:zoom-workspace]
|
||||
:section [:workspace]
|
||||
:fn identity}
|
||||
|
||||
:zoom-lense-decrease {:tooltip (ds/alt "Z")
|
||||
:label (fn [] (tr "shortcuts.zoom-lense-decrease"))
|
||||
:command "alt+z"
|
||||
:subsections [:zoom-workspace]
|
||||
:section [:workspace]
|
||||
@ -647,42 +739,49 @@
|
||||
|
||||
|
||||
:open-viewer {:tooltip "G V"
|
||||
:label (fn [] (tr "shortcuts.open-viewer"))
|
||||
:command "g v"
|
||||
:subsections [:navigation-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dcm/go-to-viewer))}
|
||||
|
||||
:open-inspect {:tooltip "G I"
|
||||
:label (fn [] (tr "shortcuts.open-inspect"))
|
||||
:command "g i"
|
||||
:subsections [:navigation-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dcm/go-to-viewer :section :inspect))}
|
||||
|
||||
:open-comments {:tooltip "G C"
|
||||
:label (fn [] (tr "shortcuts.open-comments"))
|
||||
:command "g c"
|
||||
:subsections [:navigation-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dcm/go-to-viewer :section :comments))}
|
||||
|
||||
:open-dashboard {:tooltip "G D"
|
||||
:label (fn [] (tr "shortcuts.open-dashboard"))
|
||||
:command "g d"
|
||||
:subsections [:navigation-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dcm/go-to-dashboard-recent))}
|
||||
|
||||
:select-prev {:tooltip (ds/shift "tab")
|
||||
:label (fn [] (tr "shortcuts.select-prev"))
|
||||
:command "shift+tab"
|
||||
:subsections [:navigation-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/select-prev-shape))}
|
||||
|
||||
:select-next {:tooltip ds/tab
|
||||
:label (fn [] (tr "shortcuts.select-next"))
|
||||
:command "tab"
|
||||
:subsections [:navigation-workspace]
|
||||
:section [:workspace]
|
||||
:fn #(st/emit! (dw/select-next-shape))}
|
||||
|
||||
:select-parent-layer {:tooltip (ds/shift ds/enter)
|
||||
:label (fn [] (tr "shortcuts.select-parent-layer"))
|
||||
:command "shift+enter"
|
||||
:subsections [:navigation-workspace]
|
||||
:section [:workspace]
|
||||
@ -691,24 +790,28 @@
|
||||
|
||||
|
||||
:bool-union {:tooltip (ds/meta (ds/alt "U"))
|
||||
:label (fn [] (tr "shortcuts.bool-union"))
|
||||
:command (ds/c-mod "alt+u")
|
||||
:subsections [:shape]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/create-bool :union))}
|
||||
|
||||
:bool-difference {:tooltip (ds/meta (ds/alt "D"))
|
||||
:label (fn [] (tr "shortcuts.bool-difference"))
|
||||
:command (ds/c-mod "alt+d")
|
||||
:subsections [:shape]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/create-bool :difference))}
|
||||
|
||||
:bool-intersection {:tooltip (ds/meta (ds/alt "I"))
|
||||
:label (fn [] (tr "shortcuts.bool-intersection"))
|
||||
:command (ds/c-mod "alt+i")
|
||||
:subsections [:shape]
|
||||
:section [:workspace]
|
||||
:fn #(emit-when-no-readonly (dw/create-bool :intersection))}
|
||||
|
||||
:bool-exclude {:tooltip (ds/meta (ds/alt "E"))
|
||||
:label (fn [] (tr "shortcuts.bool-exclude"))
|
||||
:command (ds/c-mod "alt+e")
|
||||
:subsections [:shape]
|
||||
:section [:workspace]
|
||||
@ -716,6 +819,7 @@
|
||||
|
||||
;; THEME
|
||||
:toggle-theme {:tooltip (ds/alt "M")
|
||||
:label (fn [] (tr "shortcuts.toggle-theme"))
|
||||
:command (ds/a-mod "m")
|
||||
:subsections [:generic :basics]
|
||||
:section [:workspace :basics]
|
||||
@ -725,6 +829,7 @@
|
||||
|
||||
;; PLUGINS
|
||||
:plugins {:tooltip (ds/meta (ds/alt "P"))
|
||||
:label (fn [] (tr "shortcuts.plugins"))
|
||||
:command (ds/c-mod "alt+p")
|
||||
:subsections [:generic :basics]
|
||||
:section [:workspace :basics]
|
||||
@ -740,14 +845,66 @@
|
||||
:fn #(emit-when-no-readonly (dp/open-preview-selected))}})
|
||||
|
||||
(def opacity-shortcuts
|
||||
(into {} (->>
|
||||
(range 10)
|
||||
(map (fn [n] [(keyword (str "opacity-" n))
|
||||
{:tooltip (str n)
|
||||
:command [(str n) (str "num" n)]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity n))}])))))
|
||||
{:opacity-0 {:label (fn [] (tr "shortcuts.opacity-0"))
|
||||
:tooltip "0"
|
||||
:command ["0" "num0"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 0))}
|
||||
:opacity-1 {:label (fn [] (tr "shortcuts.opacity-1"))
|
||||
:tooltip "1"
|
||||
:command ["1" "num1"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 1))}
|
||||
:opacity-2 {:label (fn [] (tr "shortcuts.opacity-2"))
|
||||
:tooltip "2"
|
||||
:command ["2" "num2"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 2))}
|
||||
:opacity-3 {:label (fn [] (tr "shortcuts.opacity-3"))
|
||||
:tooltip "3"
|
||||
:command ["3" "num3"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 3))}
|
||||
:opacity-4 {:label (fn [] (tr "shortcuts.opacity-4"))
|
||||
:tooltip "4"
|
||||
:command ["4" "num4"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 4))}
|
||||
:opacity-5 {:label (fn [] (tr "shortcuts.opacity-5"))
|
||||
:tooltip "5"
|
||||
:command ["5" "num5"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 5))}
|
||||
:opacity-6 {:label (fn [] (tr "shortcuts.opacity-6"))
|
||||
:tooltip "6"
|
||||
:command ["6" "num6"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 6))}
|
||||
:opacity-7 {:label (fn [] (tr "shortcuts.opacity-7"))
|
||||
:tooltip "7"
|
||||
:command ["7" "num7"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 7))}
|
||||
:opacity-8 {:label (fn [] (tr "shortcuts.opacity-8"))
|
||||
:tooltip "8"
|
||||
:command ["8" "num8"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 8))}
|
||||
:opacity-9 {:label (fn [] (tr "shortcuts.opacity-9"))
|
||||
:tooltip "9"
|
||||
:command ["9" "num9"]
|
||||
:section [:workspace]
|
||||
:subsections [:modify-layers]
|
||||
:fn #(emit-when-no-readonly (dwly/pressed-opacity 9))}})
|
||||
|
||||
(def shortcuts
|
||||
(cond-> (merge base-shortcuts opacity-shortcuts dwtxts/shortcuts)
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
[app.main.fonts :as fonts]
|
||||
[app.main.refs :as refs]
|
||||
[app.main.store :as st]
|
||||
[app.util.i18n :refer [tr]]
|
||||
[cuerdas.core :as str]
|
||||
[okulary.core :as l]))
|
||||
|
||||
@ -238,36 +239,42 @@
|
||||
|
||||
(def shortcuts
|
||||
{:underline {:tooltip (ds/meta "U")
|
||||
:label (fn [] (tr "shortcuts.underline"))
|
||||
:command (ds/c-mod "u")
|
||||
:subsections [:text-editor]
|
||||
:section [:workspace]
|
||||
:fn #(update-attrs-when-no-readonly {:text-decoration "toggle-underline"})}
|
||||
|
||||
:line-through {:tooltip (ds/alt (ds/meta-shift "5"))
|
||||
:label (fn [] (tr "shortcuts.line-through"))
|
||||
:command "alt+shift+5"
|
||||
:subsections [:text-editor]
|
||||
:section [:workspace]
|
||||
:fn #(update-attrs-when-no-readonly {:text-decoration "toggle-line-through"})}
|
||||
|
||||
:font-size-inc {:tooltip (ds/meta-shift ">")
|
||||
:label (fn [] (tr "shortcuts.font-size-inc"))
|
||||
:command (ds/c-mod "shift+.")
|
||||
:subsections [:text-editor]
|
||||
:section [:workspace]
|
||||
:fn #(update-attrs-when-no-readonly {:font-size-inc true})}
|
||||
|
||||
:font-size-dec {:tooltip (ds/meta-shift "<")
|
||||
:label (fn [] (tr "shortcuts.font-size-dec"))
|
||||
:command (ds/c-mod "shift+,")
|
||||
:subsections [:text-editor]
|
||||
:section [:workspace]
|
||||
:fn #(update-attrs-when-no-readonly {:font-size-dec true})}
|
||||
|
||||
:bold {:tooltip (ds/meta "b")
|
||||
:label (fn [] (tr "shortcuts.bold"))
|
||||
:command (ds/c-mod "b")
|
||||
:subsections [:text-editor]
|
||||
:section [:workspace]
|
||||
:fn #(update-attrs-when-no-readonly {:font-variant-id "toggle-bold"})}
|
||||
|
||||
:italic {:tooltip (ds/meta "i")
|
||||
:label (fn [] (tr "shortcuts.italic"))
|
||||
:command (ds/c-mod "i")
|
||||
:subsections [:text-editor]
|
||||
:section [:workspace]
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
[app.main.data.workspace.tokens.errors :as wte]
|
||||
[app.main.store :as st]
|
||||
[app.util.dom :as dom]
|
||||
[app.util.i18n :as i18n]
|
||||
[app.util.i18n :as i18n :refer [tr]]
|
||||
[beicon.v2.core :as rx]
|
||||
[cuerdas.core :as str]))
|
||||
|
||||
@ -54,12 +54,12 @@
|
||||
(let [type->tokens (group-by-value unknown-tokens)]
|
||||
(l/wrn :hint "unsupported token types found during import"
|
||||
:tokens (str/join ", " (map (fn [[path type]] (str path " (" type ")")) unknown-tokens)))
|
||||
(ntf/show {:content (i18n/tr "workspace.tokens.unknown-token-type-message")
|
||||
(ntf/show {:content (tr "workspace.tokens.unknown-token-type-message")
|
||||
:is-html true
|
||||
:detail (->> (for [[token-type token-paths] type->tokens]
|
||||
(str (i18n/tr "workspace.tokens.unknown-token-type-section"
|
||||
(dom/escape-html token-type)
|
||||
(i18n/tr "labels.warning-count" (i18n/c (count token-paths))))
|
||||
(str (tr "workspace.tokens.unknown-token-type-section"
|
||||
(dom/escape-html token-type)
|
||||
(tr "labels.warning-count" (i18n/c (count token-paths))))
|
||||
"<ul>"
|
||||
(->> token-paths
|
||||
(sort)
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
|
||||
(def ^:private schema:login-form
|
||||
[:map {:title "LoginForm"}
|
||||
[:email [::sm/email {:error/code "errors.invalid-email"}]]
|
||||
[:email [::sm/email {:error/fn #(tr "errors.invalid-email")}]]
|
||||
[:password {:optional true} [:string {:min 1}]]
|
||||
[:invitation-token {:optional true}
|
||||
[:string {:min 1}]]])
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
[:token ::sm/text]
|
||||
[:password-1 ::sm/password]
|
||||
[:password-2 ::sm/password]]
|
||||
[:fn {:error/code "errors.password-invalid-confirmation"
|
||||
[:fn {:error/fn #(tr "errors.password-invalid-confirmation")
|
||||
:error/field :password-2}
|
||||
(fn [{:keys [password-1 password-2]}]
|
||||
(= password-1 password-2))]])
|
||||
@ -32,6 +32,12 @@
|
||||
(let [{:keys [type code] :as edata} (ex-data error)]
|
||||
(if (= [:validation :weak-password] [type code])
|
||||
(let [details (:details edata)
|
||||
;; Execution time translation strings (keys sent by the backend):
|
||||
;; (tr "errors.weak-password.too-short")
|
||||
;; (tr "errors.weak-password.insufficient-digits")
|
||||
;; (tr "errors.weak-password.insufficient-lowercase")
|
||||
;; (tr "errors.weak-password.insufficient-uppercase")
|
||||
;; (tr "errors.weak-password.insufficient-special")
|
||||
options (when (seq details)
|
||||
(mapv tr details))]
|
||||
(swap! form assoc-in [:extra-errors :password-1]
|
||||
|
||||
@ -114,6 +114,12 @@
|
||||
(set-field-error! :password {:message (tr "errors.email-as-password")})
|
||||
|
||||
[:validation :weak-password]
|
||||
;; Execution time translation strings (keys sent by the backend):
|
||||
;; (tr "errors.weak-password.too-short")
|
||||
;; (tr "errors.weak-password.insufficient-digits")
|
||||
;; (tr "errors.weak-password.insufficient-lowercase")
|
||||
;; (tr "errors.weak-password.insufficient-uppercase")
|
||||
;; (tr "errors.weak-password.insufficient-special")
|
||||
(let [options (when (seq (:details edata))
|
||||
(mapv tr (:details edata)))]
|
||||
(set-field-error! :password {:message (tr "errors.weak-password")
|
||||
|
||||
@ -198,6 +198,8 @@
|
||||
[:div {:id (dm/str "error-" input-name)
|
||||
:class (stl/css :error)
|
||||
:data-testid (dm/str data-testid "-error")}
|
||||
;; legacy deprecated errors, dynamic codes by design
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
(if (vector? code)
|
||||
(tr (nth code 0) (i18n/c (nth code 1)))
|
||||
(tr code))])
|
||||
@ -257,6 +259,8 @@
|
||||
[:span {:class (stl/css :error)} (:message error)]
|
||||
|
||||
(and touched? (:code error))
|
||||
;; legacy errors, dynamic codes by design
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
[:span {:class (stl/css :error)} (tr (:code error))]
|
||||
|
||||
(string? hint)
|
||||
|
||||
@ -336,6 +336,8 @@
|
||||
[:> text* {:class (stl/css :error-message)
|
||||
:as "span"
|
||||
:typography t/body-small}
|
||||
;; backend-provided error key, dynamic by design
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
(if (some? (:error entry))
|
||||
(tr (:error entry))
|
||||
(tr "dashboard.import.analyze-error"))]
|
||||
@ -344,6 +346,8 @@
|
||||
[:> text* {:class (stl/css :error-message)
|
||||
:as "span"
|
||||
:typography t/body-small}
|
||||
;; backend-provided error key, dynamic by design
|
||||
#_{:clj-kondo/ignore [:penpot/tr-dynamic]}
|
||||
(if (some? (:error entry))
|
||||
(tr (:error entry))
|
||||
(tr "labels.error"))]
|
||||
|
||||
@ -400,10 +400,10 @@
|
||||
(and can-change-rol (or member-is-admin member-is-editor member-is-viewer)))
|
||||
|
||||
role (cond
|
||||
member-is-owner "labels.owner"
|
||||
member-is-admin "labels.admin"
|
||||
member-is-editor "labels.editor"
|
||||
:else "labels.viewer")
|
||||
member-is-owner (tr "labels.owner")
|
||||
member-is-admin (tr "labels.admin")
|
||||
member-is-editor (tr "labels.editor")
|
||||
:else (tr "labels.viewer"))
|
||||
|
||||
on-show (mf/use-fn #(reset! show? true))
|
||||
on-hide (mf/use-fn #(reset! show? false))]
|
||||
@ -414,10 +414,10 @@
|
||||
:aria-labelledby "role-label-id"
|
||||
:on-click on-show}
|
||||
[:span {:class (stl/css :rol-label)
|
||||
:id "role-label-id"} (tr role)]
|
||||
:id "role-label-id"} role]
|
||||
arrow-icon]
|
||||
[:div {:class (stl/css :rol-selector)}
|
||||
[:span {:class (stl/css :rol-label)} (tr role)]])
|
||||
[:span {:class (stl/css :rol-label)} role]])
|
||||
|
||||
[:& dropdown {:show @show? :on-close on-hide :dropdown-id (str "member-role-" (:id member))}
|
||||
[:ul {:class (stl/css :roles-dropdown)
|
||||
@ -883,7 +883,13 @@
|
||||
[:div {:class (stl/css :invitation-list)}
|
||||
(for [{:keys [email role]} selected]
|
||||
[:p {:key email}
|
||||
(str "- " email " (" (tr (str "labels." (name role))) ")")])]]
|
||||
(str "- " email " ("
|
||||
(cond
|
||||
(= role :owner) (tr "labels.owner")
|
||||
(= role :admin) (tr "labels.admin")
|
||||
(= role :editor) (tr "labels.editor")
|
||||
:else (tr "labels.viewer"))
|
||||
")")])]]
|
||||
|
||||
[:div {:class (stl/css :modal-footer)}
|
||||
[:div {:class (stl/css :action-buttons :modal-invitation-action-buttons)}
|
||||
@ -915,7 +921,7 @@
|
||||
(mf/defc select-organization-modal
|
||||
{::mf/register modal/components
|
||||
::mf/register-as :select-organization-modal}
|
||||
[{:keys [organizations organizations-allowed current-organization on-confirm title-key text-key choose-key placeholder-key accept-key cancel-key info-message-key description-key team-id]}]
|
||||
[{:keys [organizations organizations-allowed current-organization on-confirm title text choose placeholder accept cancel info-message description team-id]}]
|
||||
(let [current-organization-id (:id current-organization)
|
||||
has-current-org? (some? current-organization)
|
||||
valid-organizations (mf/with-memo [organizations current-organization-id]
|
||||
@ -992,30 +998,30 @@
|
||||
[:div {:class (stl/css :modal-select-organization-container :modal-container)}
|
||||
[:div {:class (stl/css :modal-select-organization-header)}
|
||||
[:h2 {:class (stl/css :modal-select-organization-title)}
|
||||
(tr title-key)]
|
||||
title]
|
||||
|
||||
[:button {:class (stl/css :modal-close-btn)
|
||||
:on-click modal/hide!} deprecated-icon/close]]
|
||||
|
||||
(when text-key
|
||||
[:div {:class (stl/css :modal-content :modal-select-organization-text)} (tr text-key)])
|
||||
(when text
|
||||
[:div {:class (stl/css :modal-content :modal-select-organization-text)} text])
|
||||
|
||||
[:div {:class (stl/css :modal-select-organization-body)}
|
||||
(when (or description-key info-message-key)
|
||||
(when (or description info-message)
|
||||
[:div {:class (stl/css :modal-select-organization-info)}
|
||||
(when description-key
|
||||
(when description
|
||||
[:div
|
||||
(tr description-key)])
|
||||
(when info-message-key
|
||||
description])
|
||||
(when info-message
|
||||
[:div
|
||||
(tr info-message-key)])])
|
||||
info-message])])
|
||||
[:div {:class (stl/css :modal-select-organization-content)}
|
||||
(tr choose-key)]
|
||||
choose]
|
||||
[:> combobox* {:id "selected-id"
|
||||
:class (stl/css :team-member)
|
||||
:options options
|
||||
:select-only true
|
||||
:placeholder (tr placeholder-key)
|
||||
:placeholder placeholder
|
||||
:on-change on-change
|
||||
:default-selected (if has-current-org?
|
||||
(str current-organization-id)
|
||||
@ -1042,14 +1048,14 @@
|
||||
:variant "secondary"
|
||||
:type "button"
|
||||
:on-click modal/hide!}
|
||||
(tr cancel-key)]
|
||||
cancel]
|
||||
[:> button*
|
||||
{:class (stl/css :accept-btn)
|
||||
:variant "primary"
|
||||
:type "button"
|
||||
:disabled disabled?
|
||||
:on-click on-confirm'}
|
||||
(tr accept-key)]]]]]))
|
||||
accept]]]]]))
|
||||
|
||||
(mf/defc invitation-section*
|
||||
{::mf/private true}
|
||||
@ -1114,7 +1120,7 @@
|
||||
|
||||
(and (= :restriction type)
|
||||
(= :max-quote-reached code))
|
||||
(st/emit! (ntf/error (tr "errors.max-quote-reached" (:target error))))
|
||||
(st/emit! (ntf/error (tr "errors.max-quota-reached" (:target error))))
|
||||
|
||||
(or (= :member-is-muted code)
|
||||
(= :email-has-permanent-bounces code)
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
"The files export dialog/modal"
|
||||
(:require-macros [app.main.style :as stl])
|
||||
(:require
|
||||
[app.common.data :as d]
|
||||
[app.common.data.macros :as dm]
|
||||
[app.config :as cf]
|
||||
[app.main.data.exports.files :as fexp]
|
||||
@ -157,19 +156,6 @@
|
||||
:key (name type)}
|
||||
[:label {:for (str "export-" type)
|
||||
:class (stl/css :export-option-label)}
|
||||
;; Execution time translation strings:
|
||||
;; (tr "files-export-modal.options.include-libraries.title")
|
||||
;; (tr "files-export-modal.options.include-libraries.message")
|
||||
|
||||
;; (tr "files-export-modal.options.merge-libraries.title")
|
||||
;; (tr "files-export-modal.options.merge-libraries.message")
|
||||
|
||||
;; (tr "files-export-modal.options.detach-libraries.title")
|
||||
;; (tr "files-export-modal.options.detach-libraries.message")
|
||||
|
||||
;; (tr "files-export-modal.options.link-later.title")
|
||||
;; (tr "files-export-modal.options.link-later.message")
|
||||
|
||||
[:span {:class (stl/css-case
|
||||
:option-icon-wrapper true
|
||||
:checked (= selected type))}
|
||||
@ -185,9 +171,17 @@
|
||||
[:> heading* {:level 3
|
||||
:typography t/body-large
|
||||
:class (stl/css :option-title)}
|
||||
(tr (dm/str "files-export-modal.options." (d/name type) ".title"))]
|
||||
(case type
|
||||
:include-libraries (tr "files-export-modal.options.include-libraries.title")
|
||||
:merge-libraries (tr "files-export-modal.options.merge-libraries.title")
|
||||
:detach-libraries (tr "files-export-modal.options.detach-libraries.title")
|
||||
:link-later (tr "files-export-modal.options.link-later.title"))]
|
||||
[:> text* {:as "p" :typography t/body-large :class (stl/css :modal-msg)}
|
||||
(tr (dm/str "files-export-modal.options." (d/name type) ".message"))]]
|
||||
(case type
|
||||
:include-libraries (tr "files-export-modal.options.include-libraries.message")
|
||||
:merge-libraries (tr "files-export-modal.options.merge-libraries.message")
|
||||
:detach-libraries (tr "files-export-modal.options.detach-libraries.message")
|
||||
:link-later (tr "files-export-modal.options.link-later.message"))]]
|
||||
|
||||
[:input {:type "radio"
|
||||
:class (stl/css :option-input)
|
||||
|
||||
@ -107,28 +107,27 @@
|
||||
(when (:text-decoration style)
|
||||
[:div {:class (stl/css :text-row)}
|
||||
[:div {:class (stl/css :global/attr-label)} "Text Decoration"]
|
||||
;; Execution time translation strings:
|
||||
;; (tr "inspect.attributes.typography.text-decoration.none")
|
||||
;; (tr "inspect.attributes.typography.text-decoration.strikethrough")
|
||||
;; (tr "inspect.attributes.typography.text-decoration.underline")
|
||||
[:div {:class (stl/css :global/attr-value)}
|
||||
[:> copy-button* {:data (copy-style-data style :text-decoration)}
|
||||
[:div {:class (stl/css :button-children)}
|
||||
(tr (dm/str "inspect.attributes.typography.text-decoration." (:text-decoration style)))]]]])
|
||||
(case (:text-decoration style)
|
||||
"none" (tr "inspect.attributes.typography.text-decoration.none")
|
||||
"underline" (tr "inspect.attributes.typography.text-decoration.underline")
|
||||
;; The style value is "line-through", the label is "strikethrough".
|
||||
"line-through" (tr "inspect.attributes.typography.text-decoration.strikethrough"))]]]])
|
||||
|
||||
(when (:text-transform style)
|
||||
[:div {:class (stl/css :text-row)}
|
||||
[:div {:class (stl/css :global/attr-label)} "Text Transform"]
|
||||
;; Execution time translation strings:
|
||||
;; (tr "inspect.attributes.typography.text-transform.lowercase")
|
||||
;; (tr "inspect.attributes.typography.text-transform.none")
|
||||
;; (tr "inspect.attributes.typography.text-transform.capitalize")
|
||||
;; (tr "inspect.attributes.typography.text-transform.uppercase")
|
||||
;; (tr "inspect.attributes.typography.text-transform.unset")
|
||||
[:div {:class (stl/css :global/attr-value)}
|
||||
[:> copy-button* {:data (copy-style-data style :text-transform)}
|
||||
[:div {:class (stl/css :button-children)}
|
||||
(tr (dm/str "inspect.attributes.typography.text-transform." (:text-transform style)))]]]])
|
||||
(case (:text-transform style)
|
||||
"lowercase" (tr "inspect.attributes.typography.text-transform.lowercase")
|
||||
"none" (tr "inspect.attributes.typography.text-transform.none")
|
||||
"capitalize" (tr "inspect.attributes.typography.text-transform.capitalize")
|
||||
"uppercase" (tr "inspect.attributes.typography.text-transform.uppercase")
|
||||
"unset" (tr "inspect.attributes.typography.text-transform.unset"))]]]])
|
||||
|
||||
[:> copy-button* {:data (str/trim text)
|
||||
:class (stl/css :attributes-content-row)}
|
||||
|
||||
@ -69,9 +69,9 @@
|
||||
[:div {:class (stl/css :warning-notice)}
|
||||
[:& context-notification
|
||||
{:level :warning
|
||||
:content (tr (if has-organizations?
|
||||
"modals.delete-account.info.with-organizations"
|
||||
"modals.delete-account.info"))}]]
|
||||
:content (if has-organizations?
|
||||
(tr "modals.delete-account.info.with-organizations")
|
||||
(tr "modals.delete-account.info"))}]]
|
||||
|
||||
(when has-organizations?
|
||||
[:div {:class (stl/css :organizations-section)}
|
||||
|
||||
@ -100,9 +100,9 @@
|
||||
"disable-webgl-rendering")
|
||||
::ev/origin "settings"})
|
||||
(du/update-profile-props {:renderer (if enabled? :wasm :svg)})
|
||||
(ntf/success (tr (if enabled?
|
||||
"webgl.toast.webgl-render-enabled"
|
||||
"webgl.toast.webgl-render-disabled"))))))]
|
||||
(ntf/success (if enabled?
|
||||
(tr "webgl.toast.webgl-render-enabled")
|
||||
(tr "webgl.toast.webgl-render-disabled"))))))]
|
||||
[:section {:class (stl/css :webgl-container)}
|
||||
[:header {:class (stl/css :webgl-header)}
|
||||
[:> heading* {:class (stl/css :title) :level 2 :typography t/title-large} (tr "dashboard.webgl-switch.title")]
|
||||
|
||||
@ -30,6 +30,12 @@
|
||||
|
||||
:weak-password
|
||||
(let [details (:details data)
|
||||
;; Execution time translation strings (keys sent by the backend):
|
||||
;; (tr "errors.weak-password.too-short")
|
||||
;; (tr "errors.weak-password.insufficient-digits")
|
||||
;; (tr "errors.weak-password.insufficient-lowercase")
|
||||
;; (tr "errors.weak-password.insufficient-uppercase")
|
||||
;; (tr "errors.weak-password.insufficient-special")
|
||||
options (when (seq details)
|
||||
(mapv tr details))]
|
||||
(swap! form assoc-in [:extra-errors :password-1]
|
||||
@ -64,7 +70,7 @@
|
||||
;; The old password is validated by the backend, so it only needs to be
|
||||
;; present here; it may predate the current minimum length policy.
|
||||
[:password-old [::sm/text {:max 500}]]]
|
||||
[:fn {:error/code "errors.password-invalid-confirmation"
|
||||
[:fn {:error/fn #(tr "errors.password-invalid-confirmation")
|
||||
:error/field :password-2}
|
||||
(fn [{:keys [password-1 password-2]}]
|
||||
(= password-1 password-2))]])
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
[app.main.data.profile :as du]
|
||||
[app.main.data.shortcuts :as ds]
|
||||
[app.main.data.viewer.shortcuts :as vsc]
|
||||
[app.main.data.workspace.grid-layout.shortcuts :as gsc]
|
||||
[app.main.data.workspace.path.shortcuts :as psc]
|
||||
[app.main.data.workspace.shortcuts :as wsc]
|
||||
[app.main.store :as st]
|
||||
@ -117,13 +118,60 @@
|
||||
:final-key (normalize-key event)
|
||||
:finalized? true})))
|
||||
|
||||
;; Shortcut labels live on the command definitions themselves as :label
|
||||
;; fns (see the app.main.data.*.shortcuts namespaces), so every key stays
|
||||
;; a static tr string literal visible to rehash with no declaration needed.
|
||||
|
||||
(def ^:private section-labels
|
||||
{:basics (fn [] (tr "shortcuts.section.basics"))
|
||||
:workspace (fn [] (tr "shortcuts.section.workspace"))
|
||||
:dashboard (fn [] (tr "shortcuts.section.dashboard"))
|
||||
:viewer (fn [] (tr "shortcuts.section.viewer"))})
|
||||
|
||||
(def ^:private subsection-labels
|
||||
{:alignment (fn [] (tr "shortcuts.subsection.alignment"))
|
||||
:edit (fn [] (tr "shortcuts.subsection.edit"))
|
||||
:generic (fn [] (tr "shortcuts.subsection.generic"))
|
||||
:main-menu (fn [] (tr "shortcuts.subsection.main-menu"))
|
||||
:modify-layers (fn [] (tr "shortcuts.subsection.modify-layers"))
|
||||
:navigation-dashboard (fn [] (tr "shortcuts.subsection.navigation-dashboard"))
|
||||
:navigation-viewer (fn [] (tr "shortcuts.subsection.navigation-viewer"))
|
||||
:navigation-workspace (fn [] (tr "shortcuts.subsection.navigation-workspace"))
|
||||
:panels (fn [] (tr "shortcuts.subsection.panels"))
|
||||
:path-editor (fn [] (tr "shortcuts.subsection.path-editor"))
|
||||
:shape (fn [] (tr "shortcuts.subsection.shape"))
|
||||
:text-editor (fn [] (tr "shortcuts.subsection.text-editor"))
|
||||
:tools (fn [] (tr "shortcuts.subsection.tools"))
|
||||
:zoom-viewer (fn [] (tr "shortcuts.subsection.zoom-viewer"))
|
||||
:zoom-workspace (fn [] (tr "shortcuts.subsection.zoom-workspace"))})
|
||||
|
||||
(def ^:private command-labels
|
||||
"id -> :label fn index over every command definition map. Labels are
|
||||
defined once on the definitions; this is only an index."
|
||||
(into {}
|
||||
(map (fn [[k v]] [k (:label v)]))
|
||||
(concat wsc/shortcuts
|
||||
psc/shortcuts
|
||||
dsc/shortcuts
|
||||
dsc/shortcuts-sidebar-navigation
|
||||
dsc/shortcut-search
|
||||
dsc/shortcut-create-new-project
|
||||
vsc/shortcuts
|
||||
gsc/shortcuts)))
|
||||
|
||||
(defn translation-keyname
|
||||
[type keyname]
|
||||
(let [translat-pre (case type
|
||||
:sc "shortcuts."
|
||||
:sec "shortcut-section."
|
||||
:sub-sec "shortcut-subsection.")]
|
||||
(tr (str translat-pre (d/name keyname)))))
|
||||
(let [label-fn (case type
|
||||
:sc (get command-labels keyname)
|
||||
:sec (get section-labels keyname)
|
||||
:sub-sec (get subsection-labels keyname))]
|
||||
(if (fn? label-fn)
|
||||
(label-fn)
|
||||
(str (case type
|
||||
:sc "shortcuts."
|
||||
:sec "shortcuts.section."
|
||||
:sub-sec "shortcuts.subsection.")
|
||||
(d/name keyname)))))
|
||||
|
||||
(defn- find-conflict
|
||||
[new-command all-shortcuts current-key]
|
||||
@ -247,13 +295,13 @@
|
||||
db-subs (dissoc db-subs :basics)
|
||||
vw-subs (dissoc vw-subs :basics)
|
||||
all {:basics {:children {:none {:children basics}}
|
||||
:translation (tr "shortcut-section.basics")}
|
||||
:translation (tr "shortcuts.section.basics")}
|
||||
:workspace {:children ws-subs
|
||||
:translation (tr "shortcut-section.workspace")}
|
||||
:translation (tr "shortcuts.section.workspace")}
|
||||
:dashboard {:children db-subs
|
||||
:translation (tr "shortcut-section.dashboard")}
|
||||
:translation (tr "shortcuts.section.dashboard")}
|
||||
:viewer {:children vw-subs
|
||||
:translation (tr "shortcut-section.viewer")}}
|
||||
:translation (tr "shortcuts.section.viewer")}}
|
||||
all (walk all nil)
|
||||
all-sc-names (map #(translation-keyname :sc %)
|
||||
(concat (keys workspace-sc)
|
||||
@ -316,11 +364,11 @@
|
||||
vw-subs (dissoc vw-subs :basics)
|
||||
ws-subs (merge ws-subs pt-subs)
|
||||
all {:workspace {:children ws-subs
|
||||
:translation (tr "shortcut-section.workspace")}
|
||||
:translation (tr "shortcuts.section.workspace")}
|
||||
:dashboard {:children db-subs
|
||||
:translation (tr "shortcut-section.dashboard")}
|
||||
:translation (tr "shortcuts.section.dashboard")}
|
||||
:viewer {:children vw-subs
|
||||
:translation (tr "shortcut-section.viewer")}}
|
||||
:translation (tr "shortcuts.section.viewer")}}
|
||||
all (walk all nil)
|
||||
all-sc-names (map #(translation-keyname :sc %)
|
||||
(concat (keys workspace-sc)
|
||||
|
||||
@ -1005,7 +1005,7 @@
|
||||
[:*
|
||||
[:> icon-button* {:variant "ghost"
|
||||
:aria-pressed show-menu?
|
||||
:aria-label (tr "shortcut-subsection.main-menu")
|
||||
:aria-label (tr "shortcuts.subsection.main-menu")
|
||||
:on-click toggle-menu
|
||||
:icon i/menu}]
|
||||
|
||||
|
||||
@ -108,37 +108,43 @@
|
||||
[type multiple?]
|
||||
(let [arity (if multiple? "multiple" "single")
|
||||
attribute (name (or type :multiple))]
|
||||
;; Execution time translation strings:
|
||||
;; (tr "workspace.undo.entry.multiple.circle")
|
||||
;; (tr "workspace.undo.entry.multiple.color")
|
||||
;; (tr "workspace.undo.entry.multiple.component")
|
||||
;; (tr "workspace.undo.entry.multiple.curve")
|
||||
;; (tr "workspace.undo.entry.multiple.frame")
|
||||
;; (tr "workspace.undo.entry.multiple.group")
|
||||
;; (tr "workspace.undo.entry.multiple.media")
|
||||
;; (tr "workspace.undo.entry.multiple.multiple")
|
||||
;; (tr "workspace.undo.entry.multiple.page")
|
||||
;; (tr "workspace.undo.entry.multiple.path")
|
||||
;; (tr "workspace.undo.entry.multiple.rect")
|
||||
;; (tr "workspace.undo.entry.multiple.shape")
|
||||
;; (tr "workspace.undo.entry.multiple.text")
|
||||
;; (tr "workspace.undo.entry.multiple.typography")
|
||||
;; (tr "workspace.undo.entry.single.circle")
|
||||
;; (tr "workspace.undo.entry.single.color")
|
||||
;; (tr "workspace.undo.entry.single.component")
|
||||
;; (tr "workspace.undo.entry.single.curve")
|
||||
;; (tr "workspace.undo.entry.single.frame")
|
||||
;; (tr "workspace.undo.entry.single.group")
|
||||
;; (tr "workspace.undo.entry.single.image")
|
||||
;; (tr "workspace.undo.entry.single.media")
|
||||
;; (tr "workspace.undo.entry.single.multiple")
|
||||
;; (tr "workspace.undo.entry.single.page")
|
||||
;; (tr "workspace.undo.entry.single.path")
|
||||
;; (tr "workspace.undo.entry.single.rect")
|
||||
;; (tr "workspace.undo.entry.single.shape")
|
||||
;; (tr "workspace.undo.entry.single.text")
|
||||
;; (tr "workspace.undo.entry.single.typography")
|
||||
(tr (str/format "workspace.undo.entry.%s.%s" arity attribute))))
|
||||
;; Unknown attributes fall back to the raw key, as before.
|
||||
(case arity
|
||||
"multiple"
|
||||
(case attribute
|
||||
"circle" (tr "workspace.undo.entry.multiple.circle")
|
||||
"color" (tr "workspace.undo.entry.multiple.color")
|
||||
"component" (tr "workspace.undo.entry.multiple.component")
|
||||
"curve" (tr "workspace.undo.entry.multiple.curve")
|
||||
"frame" (tr "workspace.undo.entry.multiple.frame")
|
||||
"group" (tr "workspace.undo.entry.multiple.group")
|
||||
"media" (tr "workspace.undo.entry.multiple.media")
|
||||
"multiple" (tr "workspace.undo.entry.multiple.multiple")
|
||||
"page" (tr "workspace.undo.entry.multiple.page")
|
||||
"path" (tr "workspace.undo.entry.multiple.path")
|
||||
"rect" (tr "workspace.undo.entry.multiple.rect")
|
||||
"shape" (tr "workspace.undo.entry.multiple.shape")
|
||||
"text" (tr "workspace.undo.entry.multiple.text")
|
||||
"typography" (tr "workspace.undo.entry.multiple.typography")
|
||||
(str "workspace.undo.entry.multiple." attribute))
|
||||
"single"
|
||||
(case attribute
|
||||
"circle" (tr "workspace.undo.entry.single.circle")
|
||||
"color" (tr "workspace.undo.entry.single.color")
|
||||
"component" (tr "workspace.undo.entry.single.component")
|
||||
"curve" (tr "workspace.undo.entry.single.curve")
|
||||
"frame" (tr "workspace.undo.entry.single.frame")
|
||||
"group" (tr "workspace.undo.entry.single.group")
|
||||
"image" (tr "workspace.undo.entry.single.image")
|
||||
"media" (tr "workspace.undo.entry.single.media")
|
||||
"multiple" (tr "workspace.undo.entry.single.multiple")
|
||||
"page" (tr "workspace.undo.entry.single.page")
|
||||
"path" (tr "workspace.undo.entry.single.path")
|
||||
"rect" (tr "workspace.undo.entry.single.rect")
|
||||
"shape" (tr "workspace.undo.entry.single.shape")
|
||||
"text" (tr "workspace.undo.entry.single.text")
|
||||
"typography" (tr "workspace.undo.entry.single.typography")
|
||||
(str "workspace.undo.entry.single." attribute)))))
|
||||
|
||||
(defn entry->message [entry]
|
||||
(let [value (entry-type->message (:type entry) (= :multiple (:id entry)))]
|
||||
|
||||
@ -653,7 +653,10 @@
|
||||
:text (tr "workspace.sidebar.layers.texts")
|
||||
:image (tr "workspace.sidebar.layers.images")
|
||||
:shape (tr "workspace.sidebar.layers.shapes")
|
||||
(tr fkey))
|
||||
;; Unreachable from the UI (the menu only emits the
|
||||
;; above); fall back to the raw name, which is what
|
||||
;; tr would render for an unknown key anyway.
|
||||
fname)
|
||||
filter-icon (usi/get-shape-icon-by-type fkey)]
|
||||
|
||||
[:button {:class (stl/css :layer-filter)
|
||||
|
||||
@ -208,7 +208,9 @@
|
||||
[:> title-bar* {:collapsable has-exports?
|
||||
:collapsed (not open?)
|
||||
:on-collapsed toggle-content
|
||||
:title (tr (if (> (count ids) 1) "workspace.options.export-multiple" "workspace.options.export"))
|
||||
:title (if (> (count ids) 1)
|
||||
(tr "workspace.options.export-multiple")
|
||||
(tr "workspace.options.export"))
|
||||
:class (stl/css-case :title-spacing-export (not has-exports?))}
|
||||
[:> icon-button* {:variant "ghost"
|
||||
:aria-label (tr "workspace.options.export.add-export")
|
||||
|
||||
@ -75,14 +75,14 @@
|
||||
[:div {:class (stl/css :element-set)}
|
||||
[:div {:class (stl/css :element-title)}
|
||||
[:> title-bar* {:collapsable false
|
||||
:title (tr "workspace.options.pixel grid-color")
|
||||
:title (tr "workspace.options.pixel-grid-color")
|
||||
:class (stl/css :title-spacing-page)}]]
|
||||
[:div {:class (stl/css :element-content)}
|
||||
|
||||
[:> color-row*
|
||||
{:disable-gradient true
|
||||
:disable-image true
|
||||
:title (tr "workspace.options.pixel grid-color")
|
||||
:title (tr "workspace.options.pixel-grid-color")
|
||||
:color grid-color
|
||||
:on-change on-grid-change
|
||||
:origin :pixel-grid
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
[:> icon-button* {:variant "ghost"
|
||||
:icon i/add
|
||||
:on-click on-start-creation
|
||||
:aria-label (tr "workspace.tokens.add set")}])
|
||||
:aria-label (tr "workspace.tokens.add-set")}])
|
||||
|
||||
(mf/defc sets-tree-set-group*
|
||||
{::mf/private true}
|
||||
|
||||
@ -35,9 +35,9 @@
|
||||
[:div {:class (stl/css :viewport-actions-title)}
|
||||
[:> i18n/tr-html*
|
||||
{:tag-name "span"
|
||||
:content (tr (if render-context-lost?
|
||||
"workspace.top-bar.webgl-context-lost"
|
||||
"workspace.top-bar.view-only"))}]]
|
||||
:content (if render-context-lost?
|
||||
(tr "workspace.top-bar.webgl-context-lost")
|
||||
(tr "workspace.top-bar.view-only"))}]]
|
||||
(if render-context-lost?
|
||||
[:> button* {:variant "primary" :on-click (fn [] (js/location.reload))}
|
||||
(tr "workspace.top-bar.webgl-context-lost.reload")]
|
||||
|
||||
@ -197,6 +197,10 @@
|
||||
(apply str/fmt value (map #(if (c? %) @% %) args)))))))
|
||||
|
||||
(defn tr
|
||||
"Translate a literal key, e.g. (tr \"workspace.foo\").
|
||||
Always pass a string literal: rehash only detects (tr \"key\")
|
||||
call sites. Never branch inside tr, hoist the conditional out:
|
||||
(if cond (tr \"a\") (tr \"b\")), NOT (tr (if cond \"a\" \"b\"))."
|
||||
([code] (t *current-locale* code))
|
||||
([code & args] (apply t *current-locale* code args)))
|
||||
|
||||
|
||||
@ -98,12 +98,14 @@
|
||||
[frontend-tests.ui.comments-position-modifier-test]
|
||||
[frontend-tests.ui.ds-controls-numeric-input-test]
|
||||
[frontend-tests.ui.gradient-handlers-test]
|
||||
[frontend-tests.ui.history-test]
|
||||
[frontend-tests.ui.layout-container-multiple-test]
|
||||
[frontend-tests.ui.measures-menu-props-test]
|
||||
[frontend-tests.ui.organization-team-switch-test]
|
||||
[frontend-tests.ui.routes-test]
|
||||
[frontend-tests.ui.settings-password-schema-test]
|
||||
[frontend-tests.ui.settings-shortcuts-test]
|
||||
[frontend-tests.ui.shortcuts-labels-test]
|
||||
[frontend-tests.ui.sidebar-scroll-test]
|
||||
[frontend-tests.util-clipboard-test]
|
||||
[frontend-tests.util-object-test]
|
||||
@ -221,6 +223,7 @@
|
||||
'frontend-tests.ui.comments-position-modifier-test
|
||||
'frontend-tests.ui.ds-controls-numeric-input-test
|
||||
'frontend-tests.ui.gradient-handlers-test
|
||||
'frontend-tests.ui.history-test
|
||||
'frontend-tests.ui.layout-container-multiple-test
|
||||
'frontend-tests.ui.measures-menu-props-test
|
||||
'frontend-tests.ui.organization-team-switch-test
|
||||
@ -229,6 +232,7 @@
|
||||
'frontend-tests.text-editor-paste-guard-test
|
||||
'frontend-tests.ui.settings-password-schema-test
|
||||
'frontend-tests.ui.settings-shortcuts-test
|
||||
'frontend-tests.ui.shortcuts-labels-test
|
||||
'frontend-tests.ui.sidebar-scroll-test
|
||||
'frontend-tests.util-clipboard-test
|
||||
'frontend-tests.util-object-test
|
||||
|
||||
49
frontend/test/frontend_tests/ui/history_test.cljs
Normal file
49
frontend/test/frontend_tests/ui/history_test.cljs
Normal file
@ -0,0 +1,49 @@
|
||||
;; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
;;
|
||||
;; Copyright (c) KALEIDOS SUBSIDIARY SL
|
||||
|
||||
(ns frontend-tests.ui.history-test
|
||||
(:require
|
||||
[app.main.ui.workspace.sidebar.history :as history]
|
||||
[app.util.i18n :as i18n]
|
||||
[cljs.test :as t :include-macros true]
|
||||
[frontend-tests.helpers.mock :as mock]))
|
||||
|
||||
;; entry-type->message resolves every undo entry type through a static
|
||||
;; (tr "literal") call (see :penpot/tr-dynamic). The stub marks keys that
|
||||
;; go through tr, so the test locks the exact key per type and proves
|
||||
;; unknown types fall back to the raw key without translation.
|
||||
|
||||
(def ^:private multiple-attributes
|
||||
["circle" "color" "component" "curve" "frame" "group" "media" "multiple"
|
||||
"page" "path" "rect" "shape" "text" "typography"])
|
||||
|
||||
(def ^:private single-attributes
|
||||
["circle" "color" "component" "curve" "frame" "group" "image" "media"
|
||||
"multiple" "page" "path" "rect" "shape" "text" "typography"])
|
||||
|
||||
(t/deftest entry-type-message-uses-static-keys
|
||||
(with-redefs [i18n/tr (mock/stub (fn [k] (str "TR:" k)))]
|
||||
(t/testing "multiple arity resolves a literal key per attribute"
|
||||
(doseq [attribute multiple-attributes]
|
||||
(t/is (= (str "TR:workspace.undo.entry.multiple." attribute)
|
||||
(history/entry-type->message (keyword attribute) true))
|
||||
attribute)))
|
||||
|
||||
(t/testing "single arity resolves a literal key per attribute"
|
||||
(doseq [attribute single-attributes]
|
||||
(t/is (= (str "TR:workspace.undo.entry.single." attribute)
|
||||
(history/entry-type->message (keyword attribute) false))
|
||||
attribute)))
|
||||
|
||||
(t/testing "nil type reads as multiple"
|
||||
(t/is (= "TR:workspace.undo.entry.single.multiple"
|
||||
(history/entry-type->message nil false))))
|
||||
|
||||
(t/testing "unknown attributes fall back to the raw key"
|
||||
(t/is (= "workspace.undo.entry.single.frobnicate"
|
||||
(history/entry-type->message :frobnicate false)))
|
||||
(t/is (= "workspace.undo.entry.multiple.frobnicate"
|
||||
(history/entry-type->message :frobnicate true))))))
|
||||
@ -25,14 +25,19 @@
|
||||
|
||||
(defn- error-codes
|
||||
"Maps every schema problem to [field error-code], mirroring how
|
||||
app.common.schema.messages resolves the message shown next to an input."
|
||||
app.common.schema.messages resolves the message shown next to an input
|
||||
(:error/fn wins over :error/code; tr returns the bare code when no
|
||||
locale data is loaded, as in tests)."
|
||||
[data]
|
||||
(->> (:errors (sm/explain passwd/schema:password-form data))
|
||||
(map (fn [{:keys [in schema]}]
|
||||
(map (fn [{:keys [in schema] :as problem}]
|
||||
(let [props (m/properties schema)
|
||||
tprops (m/type-properties schema)]
|
||||
tprops (m/type-properties schema)
|
||||
efn (or (:error/fn props) (:error/fn tprops))]
|
||||
[(or (:error/field props) (first in))
|
||||
(or (:error/code props) (:error/code tprops))])))
|
||||
(if efn
|
||||
(efn problem)
|
||||
(or (:error/code props) (:error/code tprops)))])))
|
||||
(into {})))
|
||||
|
||||
(t/deftest short-old-password-is-accepted
|
||||
|
||||
77
frontend/test/frontend_tests/ui/shortcuts_labels_test.cljs
Normal file
77
frontend/test/frontend_tests/ui/shortcuts_labels_test.cljs
Normal file
@ -0,0 +1,77 @@
|
||||
;; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
;;
|
||||
;; Copyright (c) KALEIDOS SUBSIDIARY SL
|
||||
|
||||
(ns frontend-tests.ui.shortcuts-labels-test
|
||||
(:require
|
||||
[app.main.data.dashboard.shortcuts :as dsc]
|
||||
[app.main.data.viewer.shortcuts :as vsc]
|
||||
[app.main.data.workspace.grid-layout.shortcuts :as gsc]
|
||||
[app.main.data.workspace.path.shortcuts :as psc]
|
||||
[app.main.data.workspace.shortcuts :as wsc]
|
||||
[app.main.ui.shortcuts :as ss]
|
||||
[app.util.i18n :as i18n]
|
||||
[cljs.test :as t :include-macros true]
|
||||
[frontend-tests.helpers.mock :as mock]))
|
||||
|
||||
;; Every shortcut command definition carries a :label fn holding a static
|
||||
;; (tr "literal") (see :penpot/tr-dynamic). This locks the wiring: all
|
||||
;; definition ids resolve through translation-keyname, and unknown ids
|
||||
;; (stale custom shortcuts, debug commands) fall back to the raw key.
|
||||
;; Exempt: :preview-frame (debug-only, no PO key) and :delete-stop
|
||||
;; (colorpicker-local, never translated); both keep today's raw fallback.
|
||||
|
||||
(def ^:private definition-maps
|
||||
[wsc/shortcuts
|
||||
psc/shortcuts
|
||||
dsc/shortcuts
|
||||
dsc/shortcuts-sidebar-navigation
|
||||
dsc/shortcut-search
|
||||
dsc/shortcut-create-new-project
|
||||
vsc/shortcuts
|
||||
gsc/shortcuts])
|
||||
|
||||
(def ^:private exempt-ids
|
||||
#{:preview-frame})
|
||||
|
||||
(def ^:private section-ids
|
||||
[:basics :workspace :dashboard :viewer])
|
||||
|
||||
(def ^:private subsection-ids
|
||||
[:alignment :basics :edit :generic :main-menu :modify-layers
|
||||
:navigation-dashboard :navigation-viewer :navigation-workspace
|
||||
:panels :path-editor :shape :text-editor :tools :zoom-viewer
|
||||
:zoom-workspace])
|
||||
|
||||
(t/deftest command-definitions-carry-static-labels
|
||||
(with-redefs [i18n/tr (mock/stub (fn [k] (str "TR:" k)))]
|
||||
(t/testing "every definition id resolves its literal key"
|
||||
(doseq [shortcuts definition-maps
|
||||
[id entry] shortcuts
|
||||
:when (not (contains? exempt-ids id))]
|
||||
(t/is (fn? (:label entry)) (str id " has a :label fn"))
|
||||
(t/is (= (str "TR:shortcuts." (name id))
|
||||
(ss/translation-keyname :sc id))
|
||||
(str id " resolves"))))
|
||||
|
||||
(t/testing "sections resolve their literal keys"
|
||||
(doseq [id section-ids]
|
||||
(t/is (= (str "TR:shortcuts.section." (name id))
|
||||
(ss/translation-keyname :sec id))
|
||||
(str id " resolves"))))
|
||||
|
||||
(t/testing "subsections resolve, bare basics falls back to raw"
|
||||
(doseq [id (remove #{:basics} subsection-ids)]
|
||||
(t/is (= (str "TR:shortcuts.subsection." (name id))
|
||||
(ss/translation-keyname :sub-sec id))
|
||||
(str id " resolves")))
|
||||
(t/is (= "shortcuts.subsection.basics"
|
||||
(ss/translation-keyname :sub-sec :basics))))
|
||||
|
||||
(t/testing "unknown ids fall back to the raw key"
|
||||
(t/is (= "shortcuts.stale-id"
|
||||
(ss/translation-keyname :sc :stale-id)))
|
||||
(t/is (= "shortcuts.preview-frame"
|
||||
(ss/translation-keyname :sc :preview-frame))))))
|
||||
@ -11,78 +11,61 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "Reeds 'n rekening?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"Gaan jou e-pos na en klik op die skakel om te verifieer en Penpot te begin "
|
||||
"gebruik."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Bevestig wagwoord"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "Skep demo rekening"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "Wil jy dit net probeer?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"Dit is 'n DEMO-diens, MOENIE vir werklike werk gebruik nie, die projekte "
|
||||
"sal periodiek uitgevee word."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "Wagwoord vergeet?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "Volle naam"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "Meld hier aan"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "Meld aan"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "GitLab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Tik 'n nuwe wagwoord in"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "Wagwoord suksesvol verander"
|
||||
|
||||
@ -96,19 +79,19 @@ msgstr ""
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "Wagwoordherwinningskakel na jou inkassie gestuur."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "Het suksesvol by die span aangesluit"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "Wagwoord"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "Ten minste 8 karakters"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "Privaatheidsbeleid"
|
||||
|
||||
@ -116,56 +99,35 @@ msgstr "Privaatheidsbeleid"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Herstel Wagwoord"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "Ons sal vir jou 'n e-pos stuur met instruksies"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "Wagwoord vergeet?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "Verander jou wagwoord"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "Nog nie 'n rekening nie?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "Skep 'n rekening"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Skep 'n rekening"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "Die oopbron-oplossing vir ontwerp en prototipering."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "Diensbepalings"
|
||||
|
||||
#, unused
|
||||
msgid "auth.terms-privacy-agreement"
|
||||
msgstr ""
|
||||
"Wanneer jy 'n nuwe rekening skep, stem jy in tot ons diensbepalings en "
|
||||
"privaatheidsbeleid."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "Ons het 'n verifikasie-e-pos aan gestuur"
|
||||
|
||||
#: src/app/main/ui/onboarding/questions.cljs
|
||||
#, unused
|
||||
msgid "branding-illustrations-marketing-pieces"
|
||||
msgstr "...handelsmerk, illustrasies, bemarkingsstukke, ens."
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "Publiseer"
|
||||
|
||||
@ -237,50 +199,23 @@ msgstr "Deel prototipes"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "Kies Alles"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:344
|
||||
#: src/app/main/ui/workspace/libraries.cljs:432, src/app/main/ui/workspace/libraries.cljs:833
|
||||
msgid "common.unpublish"
|
||||
msgstr "Depubliseer"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "Spanbestuur"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:95
|
||||
#: src/app/main/ui/dashboard/projects.cljs:89
|
||||
msgid "dasboard.team-hero.text"
|
||||
msgstr "Penpot is bedoel vir spanne. Nooi lede om saam te werk aan projekte en lêers"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:93
|
||||
#: src/app/main/ui/dashboard/projects.cljs:87
|
||||
msgid "dasboard.team-hero.title"
|
||||
msgstr "Span saam!"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.info"
|
||||
msgstr ""
|
||||
"Leer die basiese beginsels by Penpot terwyl jy pret het met hierdie "
|
||||
"praktiese tutoriaal."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.start"
|
||||
msgstr "Begin die tutoriaal"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.info"
|
||||
msgstr "Gaan stap deur Penpot en leer sy hoofkenmerke ken."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.start"
|
||||
msgstr "Begin die toer"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.title"
|
||||
msgstr "Koppelvlak Deurloop"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "Voeg by as Gedeelde Biblioteek"
|
||||
|
||||
@ -288,11 +223,11 @@ msgstr "Voeg by as Gedeelde Biblioteek"
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Verander e-pos"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(kopieer)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "Skep 'n nuwe span"
|
||||
|
||||
@ -300,7 +235,7 @@ msgstr "Skep 'n nuwe span"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "Jou Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "Verwyder span"
|
||||
|
||||
@ -308,20 +243,15 @@ msgstr "Verwyder span"
|
||||
msgid "dashboard.download-binary-file"
|
||||
msgstr "Laai Penpot-lêer (.penpot) af"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:321, src/app/main/ui/workspace/main_menu.cljs:712
|
||||
#, unused
|
||||
msgid "dashboard.download-standard-file"
|
||||
msgstr "Laai standaardlêer af (.svg + .json)"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:305, src/app/main/ui/dashboard/project_menu.cljs:92
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:302, src/app/main/ui/dashboard/project_menu.cljs:94
|
||||
msgid "dashboard.duplicate"
|
||||
msgstr "Dupliseer"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:269
|
||||
msgid "dashboard.duplicate-multi"
|
||||
msgstr "Dupliseer %s lêers"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:281
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:279
|
||||
msgid "dashboard.export-binary-multi"
|
||||
msgstr "Laai %s Penpot lêers (.penpot) af"
|
||||
|
||||
@ -333,10 +263,6 @@ msgstr "Voer borde as PDF uit"
|
||||
msgid "dashboard.export-frames.title"
|
||||
msgstr "Voer as PDF uit"
|
||||
|
||||
#, unused
|
||||
msgid "dashboard.export-multi"
|
||||
msgstr "Voer %s Penpot lêers uit"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "Die hersteltoken is ongeldig."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11,72 +11,60 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.6-dev\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "অ্যাকাউন্ট আছে?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"আপনার ইমেইল চেক করুন এবং লিংকে ক্লিক করে ভেরিফাই করে Penpot ব্যবহার শুরু "
|
||||
"করুন।"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "পাসওয়ার্ড নিশ্চিত করুন"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "ডেমো অ্যাকাউন্ট তৈরী করুন"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"এটি একটি ডেমো সার্ভিস। প্রয়োজনীয় কোনো কাজে ব্যবহার করবেন না। কিছু সময় পর "
|
||||
"প্রজেক্টগুলো মুছে ফেলা হবে।"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "পাসওয়ার্ড ভুলে গেছেন?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "পুরো নাম"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "এখানে লগিন করুন"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "লগিন"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "গিটহাব"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "গিটল্যাব"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "গুগল"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "ওপেনআইডি"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "নতুন পাসওয়ার্ড টাইপ করুন"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "রিকভারি টোকেন সঠিক নয়।"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,78 +11,61 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "Har du allerede en konto?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"Tjek din mail og klik på linket for at bekræfte og starte med at bruge "
|
||||
"Penpot."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Bekræft adgangskode"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "Lav demokonto"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "Vil du bare prøve det?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"Det her er en DEMO service, BRUG IKKE for rigtigt arbejde, projekterne vil "
|
||||
"blive slettet periodevis."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "Glemt adgangskode?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "Fulde Navn"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "Log på her"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "Log på"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "Github"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "Gitlab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Indtast et nyt kodeord"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "Adgangskoden er blevet ændret"
|
||||
|
||||
@ -94,15 +77,15 @@ msgstr "Profilen er ikke bekræftet, venligt verificer profilen før du går vid
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "Gendannelseslink for adgangskoden er sendt til din indbakke."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "Tilsluttet teamet med succes"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "Adgangskode"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "Mindst 8 karakterer"
|
||||
|
||||
@ -110,41 +93,31 @@ msgstr "Mindst 8 karakterer"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Gendan Adgangskode"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "Vi sender dig en mail med instruktioner"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "Glemt adgangskode?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "Skift din adgangskode"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "Ingen konto?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "Opret en konto"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Opret en konto"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "Open-source løsningen for design og prototyping."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "Vi har sendt en bekræftelsesmail til"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "Tilføj som Delt Bibliotek"
|
||||
|
||||
@ -152,11 +125,11 @@ msgstr "Tilføj som Delt Bibliotek"
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Skift email"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(kopi)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "Opret nyt team"
|
||||
|
||||
@ -164,15 +137,15 @@ msgstr "Opret nyt team"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "Dit Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "Slet team"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:305, src/app/main/ui/dashboard/project_menu.cljs:92
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:302, src/app/main/ui/dashboard/project_menu.cljs:94
|
||||
msgid "dashboard.duplicate"
|
||||
msgstr "Dublikér"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:269
|
||||
msgid "dashboard.duplicate-multi"
|
||||
msgstr "Dublikér %s filer"
|
||||
|
||||
@ -198,7 +171,7 @@ msgstr ""
|
||||
msgid "dashboard.invite-profile"
|
||||
msgstr "Invitér til team"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:608, src/app/main/ui/dashboard/sidebar.cljs:615, src/app/main/ui/dashboard/sidebar.cljs:620, src/app/main/ui/dashboard/team.cljs:464
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:257, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:263, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:268, src/app/main/ui/dashboard/team.cljs:464
|
||||
msgid "dashboard.leave-team"
|
||||
msgstr "Forlad team"
|
||||
|
||||
@ -210,31 +183,31 @@ msgstr "Delte Biblioteker"
|
||||
msgid "dashboard.loading-files"
|
||||
msgstr "indlæser dine filer…"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:313, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:308, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
msgid "dashboard.move-to"
|
||||
msgstr "Flyt til"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:277
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
msgid "dashboard.move-to-multi"
|
||||
msgstr "Flyt %s filer til"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:249
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:73
|
||||
msgid "dashboard.move-to-other-team"
|
||||
msgstr "Flyt til andet team"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:111, src/app/main/ui/dashboard/projects.cljs:259, src/app/main/ui/dashboard/projects.cljs:260
|
||||
#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:259
|
||||
msgid "dashboard.new-file"
|
||||
msgstr "+ Ny Fil"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:537, src/app/main/data/dashboard.cljs:649
|
||||
#: src/app/main/data/dashboard.cljs:506, src/app/main/data/dashboard.cljs:618
|
||||
msgid "dashboard.new-file-prefix"
|
||||
msgstr "Ny Fil"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:67
|
||||
#: src/app/main/ui/dashboard/projects.cljs:59
|
||||
msgid "dashboard.new-project"
|
||||
msgstr "+ Nyt projekt"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:290, src/app/main/data/dashboard.cljs:652
|
||||
#: src/app/main/data/dashboard.cljs:259, src/app/main/data/dashboard.cljs:621
|
||||
msgid "dashboard.new-project-prefix"
|
||||
msgstr "Nyt Projekt"
|
||||
|
||||
@ -242,39 +215,39 @@ msgstr "Nyt Projekt"
|
||||
msgid "dashboard.no-matches-for"
|
||||
msgstr "Intet match fundet for “%s“"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1177
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:400
|
||||
msgid "dashboard.no-projects-placeholder"
|
||||
msgstr "Fastgjorte projekter bliver vist her"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:37
|
||||
#: src/app/main/ui/auth/verify_token.cljs:38
|
||||
msgid "dashboard.notifications.email-changed-successfully"
|
||||
msgstr "Din email-adresse er blevet opdateret med succes"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:31
|
||||
#: src/app/main/ui/auth/verify_token.cljs:32
|
||||
msgid "dashboard.notifications.email-verified-successfully"
|
||||
msgstr "Din email-adresse er blevet bekræftet med succes"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:46
|
||||
#: src/app/main/ui/settings/password.cljs:52
|
||||
msgid "dashboard.notifications.password-saved"
|
||||
msgstr "Adgangskode gemt med succes!"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1719
|
||||
#: src/app/main/ui/dashboard/team.cljs:1725
|
||||
msgid "dashboard.num-of-members"
|
||||
msgstr "%s medlemmer"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:296
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:294
|
||||
msgid "dashboard.open-in-new-tab"
|
||||
msgstr "Åben fil i en ny fane"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:120
|
||||
#: src/app/main/ui/settings/password.cljs:112, src/app/main/ui/settings/password.cljs:126
|
||||
msgid "dashboard.password-change"
|
||||
msgstr "Skift adgangskode"
|
||||
|
||||
#: src/app/main/ui/dashboard/pin_button.cljs:22, src/app/main/ui/dashboard/project_menu.cljs:96
|
||||
#: src/app/main/ui/dashboard/files.cljs:122, src/app/main/ui/dashboard/project_menu.cljs:98, src/app/main/ui/dashboard/projects.cljs:251
|
||||
msgid "dashboard.pin-unpin"
|
||||
msgstr "Fastgør/Løsne"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:59
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:51
|
||||
msgid "dashboard.projects-title"
|
||||
msgstr "Projekter"
|
||||
|
||||
@ -282,12 +255,7 @@ msgstr "Projekter"
|
||||
msgid "dashboard.remove-account"
|
||||
msgstr "Vil du slette din konto?"
|
||||
|
||||
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
|
||||
#, unused
|
||||
msgid "dashboard.remove-shared"
|
||||
msgstr "Fjern som Delt Bibliotek"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:282, src/app/main/ui/dashboard/sidebar.cljs:283, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:228, src/app/main/ui/dashboard/sidebar.cljs:229, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
msgid "dashboard.search-placeholder"
|
||||
msgstr "Søg…"
|
||||
|
||||
@ -303,47 +271,47 @@ msgstr "Vælg UI sprog"
|
||||
msgid "dashboard.select-ui-theme"
|
||||
msgstr "Vælg tema"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:292
|
||||
#: src/app/main/ui/dashboard/projects.cljs:288
|
||||
msgid "dashboard.show-all-files"
|
||||
msgstr "Vis alle filer"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:99
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:129
|
||||
msgid "dashboard.success-delete-file"
|
||||
msgstr "Din fil er blevet slettet med succes"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:63
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:74
|
||||
msgid "dashboard.success-delete-project"
|
||||
msgstr "Dit projekt er blevet slettet med succes"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:94
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:124
|
||||
msgid "dashboard.success-duplicate-file"
|
||||
msgstr "Din fil er blevet dublikeret med succes"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:35
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:46
|
||||
msgid "dashboard.success-duplicate-project"
|
||||
msgstr "Dit projekt er blevet dublikeret med succes"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:133, src/app/main/ui/dashboard/grid.cljs:719, src/app/main/ui/dashboard/sidebar.cljs:193
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:162, src/app/main/ui/dashboard/grid.cljs:715, src/app/main/ui/dashboard/sidebar.cljs:143
|
||||
msgid "dashboard.success-move-file"
|
||||
msgstr "Din fil er blevet flyttet med succes"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:132
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:161
|
||||
msgid "dashboard.success-move-files"
|
||||
msgstr "Dine filer er blevet flyttet med succes"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:57
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:68
|
||||
msgid "dashboard.success-move-project"
|
||||
msgstr "Dit projekt er blevet flyttet med succes"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1663
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
msgstr "Team info"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1708
|
||||
#: src/app/main/ui/dashboard/team.cljs:1714
|
||||
msgid "dashboard.team-members"
|
||||
msgstr "Medlemmer"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1723
|
||||
#: src/app/main/ui/dashboard/team.cljs:1729
|
||||
msgid "dashboard.team-projects"
|
||||
msgstr "Team projekter"
|
||||
|
||||
@ -375,11 +343,11 @@ msgstr "Email"
|
||||
msgid "dashboard.your-name"
|
||||
msgstr "Dit navn"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:691, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
#: src/app/main/ui/comments.cljs:719, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
msgid "ds.confirm-cancel"
|
||||
msgstr "Fortryd"
|
||||
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:156, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
msgid "ds.confirm-ok"
|
||||
msgstr "Ok"
|
||||
|
||||
@ -391,27 +359,19 @@ msgstr "Er du sikker?"
|
||||
msgid "errors.clipboard-not-implemented"
|
||||
msgstr "Din browser kan ikke gøre denne operation"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "Genopretningspoletten er ugyldig."
|
||||
|
||||
#, unused
|
||||
msgid "labels.custom-fonts"
|
||||
msgstr "Brugerdefinerede skrifttyper"
|
||||
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:472
|
||||
msgid "labels.font-family"
|
||||
msgstr "Skrifttypefamilie"
|
||||
|
||||
#, unused
|
||||
msgid "labels.font-providers"
|
||||
msgstr "Skrifttype udbydere"
|
||||
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:1152
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:375
|
||||
msgid "labels.fonts"
|
||||
msgstr "Skrifttyper"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:103, src/app/main/ui/auth/register.cljs:376, src/app/main/ui/static.cljs:199, src/app/main/ui/viewer/login.cljs:122
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:103, src/app/main/ui/auth/register.cljs:365, src/app/main/ui/static.cljs:208, src/app/main/ui/viewer/login.cljs:132
|
||||
msgid "labels.go-back"
|
||||
msgstr "Gå tilbage!"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,78 +11,61 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "¿Ya tienes una cuenta?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"Revise su correo electrónico y haga clic en el enlace para verificar y "
|
||||
"comenzar a usar Penpot."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Confirmar Contraseña"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "Crear cuenta demo"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "¿Solo quieres probarlo?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"Este es un servicio DEMO, NO LO UTILICE para trabajos reales, los proyectos "
|
||||
"se borrarán periódicamente."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "¿Has olvidado tu contraseña?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "Nombre completo"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "Inicie sesión aquí"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "GitLab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "Open ID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Escribe una nueva contraseña"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "Contraseña cambiada correctamente"
|
||||
|
||||
@ -96,19 +79,19 @@ msgstr ""
|
||||
"El enlace de recuperación de contraseña ha sido enviado a su bandeja de "
|
||||
"entrada de su correo electrónico."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "Se unió al equipo con éxito"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "Al menos 8 carácteres"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "Política de privacidad"
|
||||
|
||||
@ -116,56 +99,35 @@ msgstr "Política de privacidad"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Recuperar contraseña"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "Le enviaremos un correo electrónico con instrucciones"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "¿Has olvidado tu contraseña?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "cambia tu contraseña"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "¿No tienes cuenta aún?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "Crea una cuenta"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Crea una cuenta"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "La solución de código abierto para diseño y creación de prototipos."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "Términos de servicio"
|
||||
|
||||
#, unused
|
||||
msgid "auth.terms-privacy-agreement"
|
||||
msgstr ""
|
||||
"Al crear una nueva cuenta, acepta nuestros términos de servicio y política "
|
||||
"de privacidad."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "Hemos enviado un correo electrónico de verificación"
|
||||
|
||||
#: src/app/main/ui/onboarding/questions.cljs
|
||||
#, unused
|
||||
msgid "branding-illustrations-marketing-pieces"
|
||||
msgstr "...marca, ilustraciones, piezas de marketing, etc."
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "Publicar"
|
||||
|
||||
@ -237,57 +199,25 @@ msgstr "Compartir prototipos"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "Seleccionar todo"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:344
|
||||
#: src/app/main/ui/workspace/libraries.cljs:432, src/app/main/ui/workspace/libraries.cljs:833
|
||||
msgid "common.unpublish"
|
||||
msgstr "Despublicar"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "Gestión de equipos"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:95
|
||||
#: src/app/main/ui/dashboard/projects.cljs:89
|
||||
msgid "dasboard.team-hero.text"
|
||||
msgstr ""
|
||||
"Penpot está destinado a equipos. Invite a miembros a trabajar juntos en "
|
||||
"proyectos y archivos"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:93
|
||||
#: src/app/main/ui/dashboard/projects.cljs:87
|
||||
msgid "dasboard.team-hero.title"
|
||||
msgstr "¡En equipo!"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.info"
|
||||
msgstr ""
|
||||
"Aprenda los conceptos básicos en Penpot mientras se divierte con este "
|
||||
"tutorial práctico."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.start"
|
||||
msgstr "Iniciar el tutorial"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.title"
|
||||
msgstr "Tutorial práctico"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.info"
|
||||
msgstr "Date un paseo por Penpot y conoce sus principales características."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.start"
|
||||
msgstr "Iniciar el recorrido"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.title"
|
||||
msgstr "Tutorial de la interfaz"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "Agregar como biblioteca compartida"
|
||||
|
||||
@ -295,11 +225,11 @@ msgstr "Agregar como biblioteca compartida"
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Cambiar el correo electrónico"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(copiar)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "Crear nuevo equipo"
|
||||
|
||||
@ -307,7 +237,7 @@ msgstr "Crear nuevo equipo"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "Tu Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "Eliminar equipo"
|
||||
|
||||
@ -315,20 +245,15 @@ msgstr "Eliminar equipo"
|
||||
msgid "dashboard.download-binary-file"
|
||||
msgstr "Descargar el archivo Penpot (.penpot)"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:321, src/app/main/ui/workspace/main_menu.cljs:712
|
||||
#, unused
|
||||
msgid "dashboard.download-standard-file"
|
||||
msgstr "Descargar archivo estándar (.svg + .json)"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:305, src/app/main/ui/dashboard/project_menu.cljs:92
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:302, src/app/main/ui/dashboard/project_menu.cljs:94
|
||||
msgid "dashboard.duplicate"
|
||||
msgstr "Duplicar"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:269
|
||||
msgid "dashboard.duplicate-multi"
|
||||
msgstr "Duplicar %s archivos"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:281
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:279
|
||||
msgid "dashboard.export-binary-multi"
|
||||
msgstr "Descargar %s archivos Penpot (.penpot)"
|
||||
|
||||
@ -340,10 +265,6 @@ msgstr "Exportar tableros como PDF"
|
||||
msgid "dashboard.export-frames.title"
|
||||
msgstr "Exportar como PDF"
|
||||
|
||||
#, unused
|
||||
msgid "dashboard.export-multi"
|
||||
msgstr "Exportar %s archivos de Penpot"
|
||||
|
||||
#: src/app/main/ui/exports/assets.cljs:108
|
||||
msgid "dashboard.export-multiple.selected"
|
||||
msgstr "%s de %s elementos seleccionados"
|
||||
@ -370,11 +291,6 @@ msgstr "No hay elementos con configuración de exportación."
|
||||
msgid "dashboard.export-shapes.title"
|
||||
msgstr "Selección de exportación"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:262
|
||||
#, unused
|
||||
msgid "dashboard.export-standard-multi"
|
||||
msgstr "Descargar %s archivos estándar (.svg + .json)"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:137
|
||||
msgid "dashboard.import.progress.process-typographies"
|
||||
msgstr "Procesamiento de tipografías"
|
||||
@ -391,7 +307,7 @@ msgstr "Subiendo archivo: %s"
|
||||
msgid "dashboard.invite-profile"
|
||||
msgstr "Invitar a la gente"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:608, src/app/main/ui/dashboard/sidebar.cljs:615, src/app/main/ui/dashboard/sidebar.cljs:620, src/app/main/ui/dashboard/team.cljs:464
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:257, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:263, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:268, src/app/main/ui/dashboard/team.cljs:464
|
||||
msgid "dashboard.leave-team"
|
||||
msgstr "dejar el equipo"
|
||||
|
||||
@ -403,7 +319,7 @@ msgstr "Bibliotecas y plantillas"
|
||||
msgid "dashboard.libraries-and-templates.explore"
|
||||
msgstr "Explore más de ellos y sepa cómo contribuir"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:774, src/app/main/ui/workspace/libraries.cljs:146
|
||||
#: src/app/main/ui/dashboard/import.cljs:816, src/app/main/ui/workspace/libraries.cljs:229
|
||||
msgid "dashboard.libraries-and-templates.import-error"
|
||||
msgstr "Hubo un problema al importar la plantilla. La plantilla no fue importada."
|
||||
|
||||
@ -419,31 +335,31 @@ msgstr "cargando tus archivos…"
|
||||
msgid "dashboard.loading-fonts"
|
||||
msgstr "cargando tus fuentes…"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:313, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:308, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
msgid "dashboard.move-to"
|
||||
msgstr "Mover a"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:277
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
msgid "dashboard.move-to-multi"
|
||||
msgstr "Mover %s archivos a"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:249
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:73
|
||||
msgid "dashboard.move-to-other-team"
|
||||
msgstr "Pasar a otro equipo"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:111, src/app/main/ui/dashboard/projects.cljs:259, src/app/main/ui/dashboard/projects.cljs:260
|
||||
#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:259
|
||||
msgid "dashboard.new-file"
|
||||
msgstr "+ Nuevo archivo"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:537, src/app/main/data/dashboard.cljs:649
|
||||
#: src/app/main/data/dashboard.cljs:506, src/app/main/data/dashboard.cljs:618
|
||||
msgid "dashboard.new-file-prefix"
|
||||
msgstr "Archivo nuevo"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:67
|
||||
#: src/app/main/ui/dashboard/projects.cljs:59
|
||||
msgid "dashboard.new-project"
|
||||
msgstr "+ Nuevo proyecto"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:290, src/app/main/data/dashboard.cljs:652
|
||||
#: src/app/main/data/dashboard.cljs:259, src/app/main/data/dashboard.cljs:621
|
||||
msgid "dashboard.new-project-prefix"
|
||||
msgstr "Nuevo proyecto"
|
||||
|
||||
@ -451,35 +367,22 @@ msgstr "Nuevo proyecto"
|
||||
msgid "dashboard.no-matches-for"
|
||||
msgstr "No se encontraron coincidencias para \"%s\""
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1177
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:400
|
||||
msgid "dashboard.no-projects-placeholder"
|
||||
msgstr "Los proyectos fijados aparecerán aquí"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:37
|
||||
#: src/app/main/ui/auth/verify_token.cljs:38
|
||||
msgid "dashboard.notifications.email-changed-successfully"
|
||||
msgstr "Su dirección de correo electrónico se ha actualizado correctamente"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/management/forms/shadow.cljs:302, src/app/main/ui/workspace/tokens/management/forms/typography.cljs:234
|
||||
#: src/app/main/ui/workspace/tokens/management/forms/shadow.cljs:302, src/app/main/ui/workspace/tokens/management/forms/typography.cljs:234, ../common/src/app/common/files/tokens.cljc:217, ../common/src/app/common/files/tokens.cljc:298, ../common/src/app/common/files/tokens.cljc:339, ../common/src/app/common/schema.cljc:1063
|
||||
msgid "errors.field-max-length"
|
||||
msgstr "El nombre debe contener como máximo %s caracteres."
|
||||
|
||||
#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
|
||||
#, unused
|
||||
#: ../common/src/app/common/schema.cljc:1076
|
||||
msgid "errors.field-not-all-whitespace"
|
||||
msgstr "El nombre debe contener algún carácter distinto al del espacio."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "El token de recuperación no es válido."
|
||||
|
||||
#: src/app/main/ui/exports/files.cljs:131
|
||||
#, unused
|
||||
msgid "files-download-modal.description-1"
|
||||
msgstr ""
|
||||
"Uno o más archivos que desea exportar utilizan bibliotecas compartidas. "
|
||||
"¿Qué quiere hacer con sus activos*?"
|
||||
|
||||
#: src/app/main/ui/exports/files.cljs:132
|
||||
#, unused
|
||||
msgid "files-download-modal.description-2"
|
||||
msgstr "* Puede incluir componentes, gráficos, colores y/o tipografías."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,78 +11,61 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.6.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"Tarkista sähköpostisi ja paina vahvistuslinkkiä käyttääksesi "
|
||||
"Penpot-ohjelmaa."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Vahvista salasana"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "Luo testikäyttäjä"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "Haluatko vain kokeilla?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: 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:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: 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:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: 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:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "Kirjaudu"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "GitLab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Syötä uusi salasana"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "Salasanan vaihto onnistui"
|
||||
|
||||
@ -94,19 +77,19 @@ msgstr "Käyttäjäsi ei ole vahvistettu, vahvista se jatkaaksesi."
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "Salasanan vaihtoon tarvittava linkki lähetetty sähköpostiisi."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: 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:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: 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:193
|
||||
#: 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:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "Tietosuojaseloste"
|
||||
|
||||
@ -114,45 +97,35 @@ msgstr "Tietosuojaseloste"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Palauta salasana"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: 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:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: 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:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "Vaihda salasanasi"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Luo uusi käyttäjä"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "Avoimen lähdekoodin ratkaisu suunnitteluun ja prototyyppien valmistukseen."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "Lähetimme vahvistussähköpostin osoitteeseen"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "Julkaise"
|
||||
|
||||
@ -224,46 +197,24 @@ msgstr "Jaa prototyypit"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "Valitse kaikki"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:344
|
||||
#: 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:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "Ryhmän hallinta"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:95
|
||||
#: 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:93
|
||||
#: src/app/main/ui/dashboard/projects.cljs:87
|
||||
msgid "dasboard.team-hero.title"
|
||||
msgstr "Ryhmäydy!"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.info"
|
||||
msgstr ""
|
||||
"Opettele Penpotin perusteet pitämällä hauskaa tämän opastuskierroksen "
|
||||
"kanssa."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.start"
|
||||
msgstr "Aloita opastuskierros"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.title"
|
||||
msgstr "Käytännön opastus"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.info"
|
||||
msgstr "Ota opastuskierros Penpotin erilaisista toiminnoista"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "Palautustunnus on virheellinen."
|
||||
|
||||
@ -11,93 +11,71 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "Hevur tú longu ein brúkara?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:237
|
||||
#, unused
|
||||
msgid "auth.check-mail"
|
||||
msgstr "Kanna tín teldupost"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"Kanna tín teldupost og trýst á leinkina fyri at vátta og byrja at nýta "
|
||||
"Penpot."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Vátta loyniorðið"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "Stovna royndarkonto"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "Vilt tú royna tað?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"Hetta er ein ROYNDAR tænasta, IKKI BRÚKA til veruligt arbeiði, "
|
||||
"verkætlanirnar verða slettaðar regluliga."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "Gloymt loyniorðið?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "Fullfíggja navn"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:288
|
||||
#: src/app/main/ui/auth/login.cljs:294
|
||||
msgid "auth.login-account-title"
|
||||
msgstr "Rita inn á mína konto"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "Innrita her."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "Rita inn"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:291
|
||||
#: src/app/main/ui/auth/login.cljs:297
|
||||
msgid "auth.login-tagline"
|
||||
msgstr ""
|
||||
"Penpot er eitt ókeypis formgevingstól við opnari keldukotu, at nýta til "
|
||||
"Formgávu og Forritanar samstarv"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "GitLab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Skriva eitt nýtt loyniorð"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "Loyniorðið er broytt"
|
||||
|
||||
@ -111,19 +89,19 @@ msgstr ""
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "Leinkjan til at endurseta títt loyniorð er send til tín postkassa."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "Sameinaðan í toymið var væleydnað"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "Loyniorð"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "Minst 8 stavir"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "Privat politikkur"
|
||||
|
||||
@ -131,63 +109,45 @@ msgstr "Privat politikkur"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Endurstovna loyniorð"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "Vit senda tær ein teldupost við vegleiðing"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "Gloymt loyniorð?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "Broyt títt loyniorð"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "Onga konto enn?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:368
|
||||
#: src/app/main/ui/auth/register.cljs:357
|
||||
msgid "auth.register-account-tagline"
|
||||
msgstr ""
|
||||
"Latið okkum frætta, hvat vit skulu navngeva teg á okkara yvirlitsskýggja og "
|
||||
"í teldupostum."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:367
|
||||
#: src/app/main/ui/auth/register.cljs:356
|
||||
msgid "auth.register-account-title"
|
||||
msgstr "Navn títt"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "Stovna konto"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:124
|
||||
#, unused
|
||||
msgid "auth.register-tagline"
|
||||
msgstr ""
|
||||
"Við einari ókeypis Penpot konto, kanst tú upprætta óavmarkaðar bólkar og "
|
||||
"samstarva við aðrar sniðgevar og forritara á so nógvum projektum, ið tygum "
|
||||
"lystur. "
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Stovna eina konto"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "Loysnin við opnari keldukotu, at formgeva og frumsniða."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "Treytir"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "Vit hava sent ein váttanar teldupost til"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "Gev út"
|
||||
|
||||
@ -259,50 +219,23 @@ msgstr "Deil frumsnið"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "Vel alt"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:344
|
||||
#: src/app/main/ui/workspace/libraries.cljs:432, src/app/main/ui/workspace/libraries.cljs:833
|
||||
msgid "common.unpublish"
|
||||
msgstr "Angra útgevan"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "Toymisleiðsla"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:95
|
||||
#: src/app/main/ui/dashboard/projects.cljs:89
|
||||
msgid "dasboard.team-hero.text"
|
||||
msgstr "Penpot er fyri toymum. Bjóða limum at arbeiða saman á verkætlanir og fílur"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:93
|
||||
#: src/app/main/ui/dashboard/projects.cljs:87
|
||||
msgid "dasboard.team-hero.title"
|
||||
msgstr "Toyma upp!"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.info"
|
||||
msgstr ""
|
||||
"Lær alt tað grundleggjandi í Penpot, meðan tú stuttleikar tær við hesari "
|
||||
"lær-og-ger leiðbeiningini."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.start"
|
||||
msgstr "Byrja undirvísingina"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.title"
|
||||
msgstr "Lær-við-at-gera leiðbeining"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.info"
|
||||
msgstr "Kom ein túr gjøgnum Penpot og lær høvuðsfunkurnar at kenna."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.start"
|
||||
msgstr "Byrja rundferð"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "Legg afturat sum Deilt Savn"
|
||||
|
||||
@ -310,11 +243,11 @@ msgstr "Legg afturat sum Deilt Savn"
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Broyt teldupost"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(avrita)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "Stovna nýtt toymi"
|
||||
|
||||
@ -322,7 +255,7 @@ msgstr "Stovna nýtt toymi"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "Títt Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "Strika toymi"
|
||||
|
||||
@ -330,20 +263,15 @@ msgstr "Strika toymi"
|
||||
msgid "dashboard.download-binary-file"
|
||||
msgstr "Heinta Penpot fílu (.penpot)"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:321, src/app/main/ui/workspace/main_menu.cljs:712
|
||||
#, unused
|
||||
msgid "dashboard.download-standard-file"
|
||||
msgstr "Heinta standarafílu (.svg + .json)"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:305, src/app/main/ui/dashboard/project_menu.cljs:92
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:302, src/app/main/ui/dashboard/project_menu.cljs:94
|
||||
msgid "dashboard.duplicate"
|
||||
msgstr "Tvítøka"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:269
|
||||
msgid "dashboard.duplicate-multi"
|
||||
msgstr "Tvítak %s fílur"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:281
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:279
|
||||
msgid "dashboard.export-binary-multi"
|
||||
msgstr "Heinta %s Penpot fílur (.penpot)"
|
||||
|
||||
@ -355,10 +283,6 @@ msgstr "Útflyt borð sum PDF"
|
||||
msgid "dashboard.export-frames.title"
|
||||
msgstr "Útflyt til PDF"
|
||||
|
||||
#, unused
|
||||
msgid "dashboard.export-multi"
|
||||
msgstr "Útflyt Penpot %s fílur"
|
||||
|
||||
#: src/app/main/ui/exports/assets.cljs:108
|
||||
msgid "dashboard.export-multiple.selected"
|
||||
msgstr "%s av %s lutum eru valdir"
|
||||
@ -379,11 +303,6 @@ msgstr "Har eru ongin lutir við útflytsstillingum."
|
||||
msgid "dashboard.export-shapes.title"
|
||||
msgstr "Valt til útflyting"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:262
|
||||
#, unused
|
||||
msgid "dashboard.export-standard-multi"
|
||||
msgstr "Heinta %s standarafílur (.svg + .json)"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:608
|
||||
msgid "dashboard.fonts.deleted-placeholder"
|
||||
msgstr "Stavsniði er strika"
|
||||
@ -402,22 +321,15 @@ msgstr[1] "% stavsnið løgd afturat"
|
||||
msgid "dashboard.fonts.upload-all"
|
||||
msgstr "Legg øll afturat"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:941, src/app/main/ui/dashboard/project_menu.cljs:109
|
||||
#: src/app/main/ui/dashboard/import.cljs:995, src/app/main/ui/dashboard/project_menu.cljs:110
|
||||
msgid "dashboard.import"
|
||||
msgstr "Innflyt Penpot fílur"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:342, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
#: src/app/main/ui/dashboard/import.cljs:343, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
msgid "dashboard.import.analyze-error"
|
||||
msgstr "Ups! Tað riggaði ikki at innflyta hesa fílu"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:292
|
||||
#, unused
|
||||
msgid "dashboard.import.import-error"
|
||||
msgstr ""
|
||||
"Har kom ein trupulleiki, tá vit royndu at innflyta fíluna. Fílan var ikki "
|
||||
"innflutt."
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:562
|
||||
#: src/app/main/ui/dashboard/import.cljs:593
|
||||
msgid "dashboard.import.import-message"
|
||||
msgstr "% fílur eru innfluttir."
|
||||
|
||||
@ -453,7 +365,7 @@ msgstr "Innleggur fílu: %s"
|
||||
msgid "dashboard.invite-profile"
|
||||
msgstr "Bjóða við í toymi"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:608, src/app/main/ui/dashboard/sidebar.cljs:615, src/app/main/ui/dashboard/sidebar.cljs:620, src/app/main/ui/dashboard/team.cljs:464
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:257, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:263, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:268, src/app/main/ui/dashboard/team.cljs:464
|
||||
msgid "dashboard.leave-team"
|
||||
msgstr "Far úr toymu"
|
||||
|
||||
@ -465,31 +377,31 @@ msgstr "lesur tínar fílur inn…"
|
||||
msgid "dashboard.loading-fonts"
|
||||
msgstr "lesur tíni stavsnið inn…"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:313, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:308, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
msgid "dashboard.move-to"
|
||||
msgstr "Flyt til"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:277
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
msgid "dashboard.move-to-multi"
|
||||
msgstr "Flyt %s fílur til"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:249
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:73
|
||||
msgid "dashboard.move-to-other-team"
|
||||
msgstr "Flyt til eitt annað toymi"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:111, src/app/main/ui/dashboard/projects.cljs:259, src/app/main/ui/dashboard/projects.cljs:260
|
||||
#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:259
|
||||
msgid "dashboard.new-file"
|
||||
msgstr "+ Nýggja fílu"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:537, src/app/main/data/dashboard.cljs:649
|
||||
#: src/app/main/data/dashboard.cljs:506, src/app/main/data/dashboard.cljs:618
|
||||
msgid "dashboard.new-file-prefix"
|
||||
msgstr "Nýggja fílu"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:67
|
||||
#: src/app/main/ui/dashboard/projects.cljs:59
|
||||
msgid "dashboard.new-project"
|
||||
msgstr "+ Nýggj verkætlan"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:290, src/app/main/data/dashboard.cljs:652
|
||||
#: src/app/main/data/dashboard.cljs:259, src/app/main/data/dashboard.cljs:621
|
||||
msgid "dashboard.new-project-prefix"
|
||||
msgstr "Nýggj verkætlan"
|
||||
|
||||
@ -497,43 +409,43 @@ msgstr "Nýggj verkætlan"
|
||||
msgid "dashboard.no-matches-for"
|
||||
msgstr "Onki samsvar funnið fyri \"%\""
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1177
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:400
|
||||
msgid "dashboard.no-projects-placeholder"
|
||||
msgstr "Festar verkætlanir verða víst her"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:37
|
||||
#: src/app/main/ui/auth/verify_token.cljs:38
|
||||
msgid "dashboard.notifications.email-changed-successfully"
|
||||
msgstr "Tín teldupostadressa er dagførd"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:31
|
||||
#: src/app/main/ui/auth/verify_token.cljs:32
|
||||
msgid "dashboard.notifications.email-verified-successfully"
|
||||
msgstr "Tín teldupostadressa er váttta"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:46
|
||||
#: src/app/main/ui/settings/password.cljs:52
|
||||
msgid "dashboard.notifications.password-saved"
|
||||
msgstr "Loyniorði er goymt!"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1719
|
||||
#: src/app/main/ui/dashboard/team.cljs:1725
|
||||
msgid "dashboard.num-of-members"
|
||||
msgstr "%s limir"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:296
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:294
|
||||
msgid "dashboard.open-in-new-tab"
|
||||
msgstr "Lat fílu upp í nýggjum skiljiblaði"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:124, src/app/main/ui/dashboard/grid.cljs:428, src/app/main/ui/dashboard/projects.cljs:268, src/app/main/ui/dashboard/projects.cljs:269
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:143, src/app/main/ui/dashboard/grid.cljs:427, src/app/main/ui/dashboard/grid.cljs:438, src/app/main/ui/dashboard/grid.cljs:480, src/app/main/ui/dashboard/projects.cljs:217, src/app/main/ui/dashboard/projects.cljs:274, src/app/main/ui/dashboard/sidebar.cljs:156
|
||||
msgid "dashboard.options"
|
||||
msgstr "Valmøguleikar"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:120
|
||||
#: src/app/main/ui/settings/password.cljs:112, src/app/main/ui/settings/password.cljs:126
|
||||
msgid "dashboard.password-change"
|
||||
msgstr "Broyt loyniorð"
|
||||
|
||||
#: src/app/main/ui/dashboard/pin_button.cljs:22, src/app/main/ui/dashboard/project_menu.cljs:96
|
||||
#: src/app/main/ui/dashboard/files.cljs:122, src/app/main/ui/dashboard/project_menu.cljs:98, src/app/main/ui/dashboard/projects.cljs:251
|
||||
msgid "dashboard.pin-unpin"
|
||||
msgstr "Fest/Loys"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:59
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:51
|
||||
msgid "dashboard.projects-title"
|
||||
msgstr "Verkætlanir"
|
||||
|
||||
@ -541,16 +453,11 @@ msgstr "Verkætlanir"
|
||||
msgid "dashboard.remove-account"
|
||||
msgstr "Vilt tú strika tína konto?"
|
||||
|
||||
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
|
||||
#, unused
|
||||
msgid "dashboard.remove-shared"
|
||||
msgstr "Strikað sum Deilt Savn"
|
||||
|
||||
#: src/app/main/ui/settings/profile.cljs:78
|
||||
msgid "dashboard.save-settings"
|
||||
msgstr "Goym stillingar"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:282, src/app/main/ui/dashboard/sidebar.cljs:283, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:228, src/app/main/ui/dashboard/sidebar.cljs:229, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
msgid "dashboard.search-placeholder"
|
||||
msgstr "Leita…"
|
||||
|
||||
@ -566,39 +473,39 @@ msgstr "Vel mál til takførisflatu"
|
||||
msgid "dashboard.select-ui-theme"
|
||||
msgstr "Vel tema"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:292
|
||||
#: src/app/main/ui/dashboard/projects.cljs:288
|
||||
msgid "dashboard.show-all-files"
|
||||
msgstr "Vís allar fílurnar"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:99
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:129
|
||||
msgid "dashboard.success-delete-file"
|
||||
msgstr "Tín fíla er strikað"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:63
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:74
|
||||
msgid "dashboard.success-delete-project"
|
||||
msgstr "Tín verkætlan er strikað"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:133, src/app/main/ui/dashboard/grid.cljs:719, src/app/main/ui/dashboard/sidebar.cljs:193
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:162, src/app/main/ui/dashboard/grid.cljs:715, src/app/main/ui/dashboard/sidebar.cljs:143
|
||||
msgid "dashboard.success-move-file"
|
||||
msgstr "Tín fíla er flutt"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:132
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:161
|
||||
msgid "dashboard.success-move-files"
|
||||
msgstr "Tínar fílur eru fluttar"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:57
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:68
|
||||
msgid "dashboard.success-move-project"
|
||||
msgstr "Tín verkætlan er flutt"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1663
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
msgstr "Toymisupplýsingar"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1708
|
||||
#: src/app/main/ui/dashboard/team.cljs:1714
|
||||
msgid "dashboard.team-members"
|
||||
msgstr "Toymislimir"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1723
|
||||
#: src/app/main/ui/dashboard/team.cljs:1729
|
||||
msgid "dashboard.team-projects"
|
||||
msgstr "Toymisverkætlanir"
|
||||
|
||||
@ -618,23 +525,19 @@ msgstr "Skriva fyri at leita eftir úrslitum"
|
||||
msgid "ds.alert-ok"
|
||||
msgstr "Ókey"
|
||||
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:156, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
msgid "ds.confirm-ok"
|
||||
msgstr "Ókey"
|
||||
|
||||
#: src/app/main/data/auth.cljs:348, src/app/main/ui/auth/login.cljs:91, src/app/main/ui/auth/login.cljs:99
|
||||
#: src/app/main/data/auth.cljs:342, src/app/main/ui/auth/login.cljs:92, src/app/main/ui/auth/login.cljs:100
|
||||
msgid "errors.profile-blocked"
|
||||
msgstr "Vangamyndin er stongd"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:292
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:289
|
||||
msgid "labels.delete-multi-files"
|
||||
msgstr "Strikað %s fílur"
|
||||
|
||||
#, unused
|
||||
msgid "labels.edit-file"
|
||||
msgstr "Broyt fílu"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:242, src/app/main/ui/dashboard/team.cljs:1733
|
||||
#: src/app/main/ui/dashboard/projects.cljs:238, src/app/main/ui/dashboard/team.cljs:1739
|
||||
msgid "labels.num-of-files"
|
||||
msgid_plural "labels.num-of-files"
|
||||
msgstr[0] "1 fíla"
|
||||
@ -652,27 +555,27 @@ msgstr "Legg afturat sum Deilt Savn"
|
||||
msgid "modals.add-shared-confirm.message"
|
||||
msgstr "Legg \"%s\" afturat sum Deilt Savn"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:126
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:155
|
||||
msgid "modals.delete-file-confirm.accept"
|
||||
msgstr "Strikað fílu"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:125
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:154
|
||||
msgid "modals.delete-file-confirm.message"
|
||||
msgstr "Ert tú vísur í, at tú ynskjur at strikað fílu?"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:124
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:153
|
||||
msgid "modals.delete-file-confirm.title"
|
||||
msgstr "Strikar fílu"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:120
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:149
|
||||
msgid "modals.delete-file-multi-confirm.accept"
|
||||
msgstr "Strikar fílur"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:119
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:148
|
||||
msgid "modals.delete-file-multi-confirm.message"
|
||||
msgstr "Ert tú vísur í, at tú vil strikað %s fílur?"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:118
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:147
|
||||
msgid "modals.delete-file-multi-confirm.title"
|
||||
msgstr "Strikar %s fílur"
|
||||
|
||||
@ -694,17 +597,7 @@ msgid_plural "modals.delete-shared-confirm.title"
|
||||
msgstr[0] "Strikar fílu"
|
||||
msgstr[1] "Strikar fílur"
|
||||
|
||||
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
|
||||
#, unused
|
||||
msgid "modals.remove-shared-confirm.accept"
|
||||
msgstr "Strikað sum Deilt Savn"
|
||||
|
||||
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
|
||||
#, unused
|
||||
msgid "modals.remove-shared-confirm.message"
|
||||
msgstr "Strika \"%s\" sum Deilt Savn"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:188
|
||||
#: src/app/main/ui/dashboard/files.cljs:209
|
||||
msgid "title.dashboard.files"
|
||||
msgstr "%s - Penpot"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,79 +11,59 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "アカウントをお持ちですか?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:237
|
||||
#, unused
|
||||
msgid "auth.check-mail"
|
||||
msgstr "メールを確認してください"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr "Penpotを使う前にメールのリンクをクリックして、メールアドレスを認証してください。"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "パスワードを確認"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "デモアカウントを作成"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "試してみませんか?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr "このサービスはデモ版です。実際の業務には使用しないでください。"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "パスワードを忘れましたか?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "フルネーム"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "こちらからログイン"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "ログイン"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "Gitlab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAPでログイン"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID Connect"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "新しいパスワードを入力"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "パスワードを変更しました"
|
||||
|
||||
@ -95,19 +75,19 @@ msgstr "プロフィールが確認されていません。続ける前にプロ
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "パスワード変更リンクをメールで送信しました。"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "チームに参加しました"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "パスワード"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "登録"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "プライバシーポリシー"
|
||||
|
||||
@ -115,54 +95,44 @@ msgstr "プライバシーポリシー"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "パスワードを回復"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "手順を記載したメールをお送りします"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "パスワードを忘れましたか?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "パスワードを変更"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "アカウントをお持ちでない方はこちら"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:367
|
||||
#: src/app/main/ui/auth/register.cljs:356
|
||||
msgid "auth.register-account-title"
|
||||
msgstr "あなたの名前"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "アカウントを作成"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "アカウントを作成"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "デザインとプロトタイピングのためのオープンソースです。"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:50
|
||||
#: src/app/main/ui/auth/register.cljs:49
|
||||
#, markdown
|
||||
msgid "auth.terms-and-privacy-agreement"
|
||||
msgstr "[利用規約](%s) と [プライバシーポリシー](%s) に同意します。"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "利用規約"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "認証メールを送信しました"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "公開"
|
||||
|
||||
@ -231,20 +201,15 @@ msgstr "プロトタイプを共有"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "すべて選択"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:344
|
||||
#: src/app/main/ui/workspace/libraries.cljs:432, src/app/main/ui/workspace/libraries.cljs:833
|
||||
msgid "common.unpublish"
|
||||
msgstr "非公開"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "チームを管理"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.start"
|
||||
msgstr "チュートリアルを始める"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "共有ライブラリとして追加"
|
||||
|
||||
@ -252,11 +217,11 @@ msgstr "共有ライブラリとして追加"
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "メールアドレスを変更"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(コピー)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "チームを新規作成"
|
||||
|
||||
@ -264,7 +229,7 @@ msgstr "チームを新規作成"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "あなたのPenpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "チームを削除"
|
||||
|
||||
@ -272,16 +237,11 @@ msgstr "チームを削除"
|
||||
msgid "dashboard.download-binary-file"
|
||||
msgstr "Penpotファイル(.penpot)をダウンロード"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:321, src/app/main/ui/workspace/main_menu.cljs:712
|
||||
#, unused
|
||||
msgid "dashboard.download-standard-file"
|
||||
msgstr "標準形式(.svg+.json)でダウンロード"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:305, src/app/main/ui/dashboard/project_menu.cljs:92
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:302, src/app/main/ui/dashboard/project_menu.cljs:94
|
||||
msgid "dashboard.duplicate"
|
||||
msgstr "複製"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:269
|
||||
msgid "dashboard.duplicate-multi"
|
||||
msgstr "%s ファイルを複製"
|
||||
|
||||
@ -306,11 +266,11 @@ msgstr[0] "%s フォントを追加しました"
|
||||
msgid "dashboard.fonts.upload-all"
|
||||
msgstr "すべてアップロード"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:941, src/app/main/ui/dashboard/project_menu.cljs:109
|
||||
#: src/app/main/ui/dashboard/import.cljs:995, src/app/main/ui/dashboard/project_menu.cljs:110
|
||||
msgid "dashboard.import"
|
||||
msgstr "Penpotをインポート"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:342, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
#: src/app/main/ui/dashboard/import.cljs:343, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
msgid "dashboard.import.analyze-error"
|
||||
msgstr "Penpotファイルをインポート"
|
||||
|
||||
@ -342,7 +302,7 @@ msgstr "アップロード中: %s"
|
||||
msgid "dashboard.invite-profile"
|
||||
msgstr "チームに招待"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:608, src/app/main/ui/dashboard/sidebar.cljs:615, src/app/main/ui/dashboard/sidebar.cljs:620, src/app/main/ui/dashboard/team.cljs:464
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:257, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:263, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:268, src/app/main/ui/dashboard/team.cljs:464
|
||||
msgid "dashboard.leave-team"
|
||||
msgstr "チームから脱退"
|
||||
|
||||
@ -358,19 +318,19 @@ msgstr "ファイルを読みこんでいます…"
|
||||
msgid "dashboard.loading-fonts"
|
||||
msgstr "フォントを読みこんでいます…"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:111, src/app/main/ui/dashboard/projects.cljs:259, src/app/main/ui/dashboard/projects.cljs:260
|
||||
#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:259
|
||||
msgid "dashboard.new-file"
|
||||
msgstr "+ 新しいファイル"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:537, src/app/main/data/dashboard.cljs:649
|
||||
#: src/app/main/data/dashboard.cljs:506, src/app/main/data/dashboard.cljs:618
|
||||
msgid "dashboard.new-file-prefix"
|
||||
msgstr "新しいファイル"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:67
|
||||
#: src/app/main/ui/dashboard/projects.cljs:59
|
||||
msgid "dashboard.new-project"
|
||||
msgstr "+ 新規プロジェクト"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:290, src/app/main/data/dashboard.cljs:652
|
||||
#: src/app/main/data/dashboard.cljs:259, src/app/main/data/dashboard.cljs:621
|
||||
msgid "dashboard.new-project-prefix"
|
||||
msgstr "新規プロジェクト"
|
||||
|
||||
@ -378,39 +338,39 @@ msgstr "新規プロジェクト"
|
||||
msgid "dashboard.no-matches-for"
|
||||
msgstr "\"%s\"が見つかりませんでした"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1177
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:400
|
||||
msgid "dashboard.no-projects-placeholder"
|
||||
msgstr "ピン留めされたプロジェクトはここに表示されます"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:37
|
||||
#: src/app/main/ui/auth/verify_token.cljs:38
|
||||
msgid "dashboard.notifications.email-changed-successfully"
|
||||
msgstr "メールアドレスが更新されました"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:31
|
||||
#: src/app/main/ui/auth/verify_token.cljs:32
|
||||
msgid "dashboard.notifications.email-verified-successfully"
|
||||
msgstr "メールアドレスが認証されました"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:46
|
||||
#: src/app/main/ui/settings/password.cljs:52
|
||||
msgid "dashboard.notifications.password-saved"
|
||||
msgstr "パスワードを保存しました!"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1719
|
||||
#: src/app/main/ui/dashboard/team.cljs:1725
|
||||
msgid "dashboard.num-of-members"
|
||||
msgstr "%s メンバー"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:296
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:294
|
||||
msgid "dashboard.open-in-new-tab"
|
||||
msgstr "新しいタブでファイルで開く"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:124, src/app/main/ui/dashboard/grid.cljs:428, src/app/main/ui/dashboard/projects.cljs:268, src/app/main/ui/dashboard/projects.cljs:269
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:143, src/app/main/ui/dashboard/grid.cljs:427, src/app/main/ui/dashboard/grid.cljs:438, src/app/main/ui/dashboard/grid.cljs:480, src/app/main/ui/dashboard/projects.cljs:217, src/app/main/ui/dashboard/projects.cljs:274, src/app/main/ui/dashboard/sidebar.cljs:156
|
||||
msgid "dashboard.options"
|
||||
msgstr "オプション"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:120
|
||||
#: src/app/main/ui/settings/password.cljs:112, src/app/main/ui/settings/password.cljs:126
|
||||
msgid "dashboard.password-change"
|
||||
msgstr "パスワードを変更"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:59
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:51
|
||||
msgid "dashboard.projects-title"
|
||||
msgstr "プロジェクト"
|
||||
|
||||
@ -418,16 +378,11 @@ msgstr "プロジェクト"
|
||||
msgid "dashboard.remove-account"
|
||||
msgstr "アカウントを削除したいですか?"
|
||||
|
||||
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
|
||||
#, unused
|
||||
msgid "dashboard.remove-shared"
|
||||
msgstr "共有ライブラリから削除"
|
||||
|
||||
#: src/app/main/ui/settings/profile.cljs:78
|
||||
msgid "dashboard.save-settings"
|
||||
msgstr "設定を保存"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:282, src/app/main/ui/dashboard/sidebar.cljs:283, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:228, src/app/main/ui/dashboard/sidebar.cljs:229, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
msgid "dashboard.search-placeholder"
|
||||
msgstr "検索…"
|
||||
|
||||
@ -443,47 +398,47 @@ msgstr "表示言語を選択"
|
||||
msgid "dashboard.select-ui-theme"
|
||||
msgstr "テーマを選択"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:292
|
||||
#: src/app/main/ui/dashboard/projects.cljs:288
|
||||
msgid "dashboard.show-all-files"
|
||||
msgstr "すべてのファイルを表示"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:99
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:129
|
||||
msgid "dashboard.success-delete-file"
|
||||
msgstr "ファイルを削除しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:63
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:74
|
||||
msgid "dashboard.success-delete-project"
|
||||
msgstr "プロジェクトを削除しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:94
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:124
|
||||
msgid "dashboard.success-duplicate-file"
|
||||
msgstr "ファイルを複製しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:35
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:46
|
||||
msgid "dashboard.success-duplicate-project"
|
||||
msgstr "プロジェクトを複製しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:133, src/app/main/ui/dashboard/grid.cljs:719, src/app/main/ui/dashboard/sidebar.cljs:193
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:162, src/app/main/ui/dashboard/grid.cljs:715, src/app/main/ui/dashboard/sidebar.cljs:143
|
||||
msgid "dashboard.success-move-file"
|
||||
msgstr "ファイルを移動しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:132
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:161
|
||||
msgid "dashboard.success-move-files"
|
||||
msgstr "ファイルを移動しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:57
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:68
|
||||
msgid "dashboard.success-move-project"
|
||||
msgstr "ファイルを削除しました"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1663
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
msgstr "チーム情報"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1708
|
||||
#: src/app/main/ui/dashboard/team.cljs:1714
|
||||
msgid "dashboard.team-members"
|
||||
msgstr "チームのメンバー"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1723
|
||||
#: src/app/main/ui/dashboard/team.cljs:1729
|
||||
msgid "dashboard.team-projects"
|
||||
msgstr "チームのプロジェクト"
|
||||
|
||||
@ -515,11 +470,11 @@ msgstr "Eメール"
|
||||
msgid "dashboard.your-name"
|
||||
msgstr "名前"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:691, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
#: src/app/main/ui/comments.cljs:719, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
msgid "ds.confirm-cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:156, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
msgid "ds.confirm-ok"
|
||||
msgstr "OK"
|
||||
|
||||
@ -527,11 +482,11 @@ msgstr "OK"
|
||||
msgid "ds.confirm-title"
|
||||
msgstr "本当に実行しますか?"
|
||||
|
||||
#: src/app/main/data/auth.cljs:197
|
||||
#: src/app/main/data/auth.cljs:191
|
||||
msgid "errors.auth-provider-not-configured"
|
||||
msgstr "認証プロバイダが設定されていません。"
|
||||
|
||||
#: src/app/main/errors.cljs:258
|
||||
#: src/app/main/errors.cljs:580
|
||||
msgid "errors.auth.unable-to-login"
|
||||
msgstr "認証されていないか、セッションが失効しているようです。"
|
||||
|
||||
@ -539,27 +494,27 @@ msgstr "認証されていないか、セッションが失効しているよう
|
||||
msgid "errors.clipboard-not-implemented"
|
||||
msgstr "この処理は実行できません"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:107, src/app/main/ui/auth/verify_token.cljs:128, src/app/main/ui/settings/change_email.cljs:29
|
||||
#: src/app/main/ui/auth/register.cljs:111, src/app/main/ui/auth/verify_token.cljs:148, src/app/main/ui/settings/change_email.cljs:29
|
||||
msgid "errors.email-already-exists"
|
||||
msgstr "メールアドレスは使用されています"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:133
|
||||
#: src/app/main/ui/auth/verify_token.cljs:153
|
||||
msgid "errors.email-already-validated"
|
||||
msgstr "メールアドレスはすでに有効です。"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:110, src/app/main/ui/settings/password.cljs:29
|
||||
#: src/app/main/ui/auth/register.cljs:114, src/app/main/ui/settings/password.cljs:29
|
||||
msgid "errors.email-as-password"
|
||||
msgstr "メールアドレスはパスワードとして設定できません"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:97, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/dashboard/team.cljs:740, src/app/main/ui/settings/change_email.cljs:37
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:102, src/app/main/ui/auth/register.cljs:105, src/app/main/ui/dashboard/team.cljs:740, src/app/main/ui/settings/change_email.cljs:37
|
||||
msgid "errors.email-has-permanent-bounces"
|
||||
msgstr "メールアドレス «%s» には多くの受信失敗レポートがあります。"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:239, src/app/main/ui/dashboard/team.cljs:1122, src/app/main/ui/onboarding/team_choice.cljs:122
|
||||
#: src/app/main/ui/dashboard/team.cljs:239, src/app/main/ui/dashboard/team.cljs:1128, src/app/main/ui/onboarding/team_choice.cljs:122
|
||||
msgid "errors.email-spam-or-permanent-bounces"
|
||||
msgstr "«%s» はスパムとして報告されたか、または恒久的に受信失敗しています"
|
||||
|
||||
#: src/app/main/data/auth.cljs:358, src/app/main/errors.cljs:196, src/app/main/ui/auth/login.cljs:110, src/app/main/ui/auth/register.cljs:129, src/app/main/ui/auth/register.cljs:322, src/app/main/ui/auth/verify_token.cljs:138, src/app/main/ui/dashboard/fonts.cljs:386, src/app/main/ui/dashboard/team.cljs:250, src/app/main/ui/dashboard/team.cljs:1125, src/app/main/ui/onboarding/team_choice.cljs:125, src/app/main/ui/settings/feedback.cljs:84, src/app/main/ui/settings/integrations.cljs:143, src/app/main/ui/workspace/main_menu.cljs:966
|
||||
#: src/app/main/data/auth.cljs:352, src/app/main/errors.cljs:479, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:131, src/app/main/ui/auth/register.cljs:317, src/app/main/ui/auth/verify_token.cljs:158, src/app/main/ui/dashboard/fonts.cljs:386, src/app/main/ui/dashboard/team.cljs:250, src/app/main/ui/dashboard/team.cljs:1131, src/app/main/ui/onboarding/team_choice.cljs:125, src/app/main/ui/settings/feedback.cljs:84, src/app/main/ui/settings/integrations.cljs:143, src/app/main/ui/workspace/main_menu.cljs:966
|
||||
msgid "errors.generic"
|
||||
msgstr "エラーが発生しました。"
|
||||
|
||||
@ -571,7 +526,7 @@ msgstr "無効な色"
|
||||
msgid "errors.invalid-email-confirmation"
|
||||
msgstr "メールアドレスは同じものを入力する必要があります"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "リカバリコードが無効です。"
|
||||
|
||||
@ -583,7 +538,7 @@ msgstr "招待が無効"
|
||||
msgid "errors.invite-invalid.info"
|
||||
msgstr "この招待はキャンセルされたか、失効しています。"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:96
|
||||
msgid "errors.ldap-disabled"
|
||||
msgstr "LDAP認証は無効になっています。"
|
||||
|
||||
@ -599,16 +554,15 @@ msgstr "画像の内容と拡張子が一致しません。"
|
||||
msgid "errors.media-type-not-allowed"
|
||||
msgstr "無効な画像です。"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs
|
||||
#, unused
|
||||
#: ../common/src/app/common/schema.cljc:1092
|
||||
msgid "errors.password-too-short"
|
||||
msgstr "パスワードは8文字以上である必要があります"
|
||||
|
||||
#: src/app/main/data/auth.cljs:346, src/app/main/ui/auth/register.cljs:91
|
||||
#: src/app/main/data/auth.cljs:340, src/app/main/ui/auth/register.cljs:96
|
||||
msgid "errors.registration-disabled"
|
||||
msgstr "新規登録は無効化されています。"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:513, src/app/main/ui/dashboard/team.cljs:511
|
||||
#: src/app/main/data/nitrate.cljs:203, src/app/main/ui/dashboard/team.cljs:511
|
||||
msgid "errors.team-leave.owner-cant-leave"
|
||||
msgstr "オーナーはチームを脱退できません。オーナーロールを外してください。"
|
||||
|
||||
@ -616,11 +570,11 @@ msgstr "オーナーはチームを脱退できません。オーナーロール
|
||||
msgid "errors.unexpected-error"
|
||||
msgstr "エラーが発生しました。"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:75
|
||||
#: src/app/main/ui/auth/verify_token.cljs:95
|
||||
msgid "errors.unexpected-token"
|
||||
msgstr "不明なトークン"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:103, src/app/main/ui/auth/login.cljs:107
|
||||
#: src/app/main/ui/auth/login.cljs:104, src/app/main/ui/auth/login.cljs:108
|
||||
msgid "errors.wrong-credentials"
|
||||
msgstr "ユーザー名かパスワードが正しくありません。"
|
||||
|
||||
@ -644,15 +598,10 @@ msgstr "題名"
|
||||
msgid "feedback.twitter-title"
|
||||
msgstr "Xサポートアカウント"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:39
|
||||
#: src/app/main/ui/settings/password.cljs:45
|
||||
msgid "generic.error"
|
||||
msgstr "エラーが発生しました"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/blur.cljs:31
|
||||
#, unused
|
||||
msgid "inspect.attributes.blur"
|
||||
msgstr "ぼかし"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/fill.cljs:69
|
||||
msgid "inspect.attributes.fill"
|
||||
msgstr "塗りつぶし"
|
||||
@ -661,51 +610,6 @@ msgstr "塗りつぶし"
|
||||
msgid "inspect.attributes.image.download"
|
||||
msgstr "画像をダウンロード"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/image.cljs:39
|
||||
#, unused
|
||||
msgid "inspect.attributes.image.height"
|
||||
msgstr "高さ"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/image.cljs:32
|
||||
#, unused
|
||||
msgid "inspect.attributes.image.width"
|
||||
msgstr "横幅"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout"
|
||||
msgstr "レイアウト"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.height"
|
||||
msgstr "高さ"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.left"
|
||||
msgstr "左"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.radius"
|
||||
msgstr "半径"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.rotation"
|
||||
msgstr "回転"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.top"
|
||||
msgstr "上"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.width"
|
||||
msgstr "幅"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/shadow.cljs:66
|
||||
msgid "inspect.attributes.shadow"
|
||||
msgstr "シャドウ"
|
||||
@ -730,12 +634,7 @@ msgstr "フォントスタイル"
|
||||
msgid "inspect.attributes.typography.line-height"
|
||||
msgstr "行の高さ"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/text.cljs:140
|
||||
#, unused
|
||||
msgid "inspect.attributes.typography.text-decoration"
|
||||
msgstr "文字装飾"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/text.cljs:113
|
||||
#: src/app/main/ui/inspect/attributes/text.cljs:115
|
||||
msgid "inspect.attributes.typography.text-decoration.underline"
|
||||
msgstr "下線"
|
||||
|
||||
@ -771,7 +670,7 @@ msgstr "ショートカット"
|
||||
msgid "labels.add-custom-font"
|
||||
msgstr "カスタムフォントを追加"
|
||||
|
||||
#: src/app/main/data/common.cljs:121, src/app/main/ui/dashboard/change_owner.cljs:67, src/app/main/ui/dashboard/change_owner.cljs:174, src/app/main/ui/dashboard/import.cljs:626, src/app/main/ui/dashboard/team.cljs:896, src/app/main/ui/dashboard/team.cljs:1405, src/app/main/ui/delete_shared.cljs:36, src/app/main/ui/exports/assets.cljs:163, src/app/main/ui/exports/files.cljs:201, src/app/main/ui/settings/import_shortcuts_diff_modal.cljs:156, src/app/main/ui/settings/integrations.cljs:220, src/app/main/ui/settings/restore_shortcuts_modal.cljs:165, src/app/main/ui/shortcuts.cljs:578, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:178, src/app/main/ui/workspace/tokens/export/modal.cljs:43, src/app/main/ui/workspace/tokens/import/modal.cljs:268, src/app/main/ui/workspace/tokens/import_from_library.cljs:88, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:360, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:73, src/app/main/ui/workspace/tokens/settings/menu.cljs:104, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:242
|
||||
#: src/app/main/data/common.cljs:121, src/app/main/data/nitrate.cljs:532, src/app/main/data/nitrate.cljs:617, src/app/main/ui/dashboard/change_owner.cljs:67, src/app/main/ui/dashboard/change_owner.cljs:174, src/app/main/ui/dashboard/import.cljs:657, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/dashboard/team.cljs:1411, src/app/main/ui/delete_shared.cljs:36, src/app/main/ui/exports/assets.cljs:163, src/app/main/ui/exports/files.cljs:199, src/app/main/ui/settings/import_shortcuts_diff_modal.cljs:156, src/app/main/ui/settings/integrations.cljs:220, src/app/main/ui/settings/restore_shortcuts_modal.cljs:165, src/app/main/ui/shortcuts.cljs:651, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:178, src/app/main/ui/workspace/tokens/export/modal.cljs:43, src/app/main/ui/workspace/tokens/import/modal.cljs:268, src/app/main/ui/workspace/tokens/import_from_library.cljs:88, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:360, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:73, src/app/main/ui/workspace/tokens/settings/menu.cljs:104, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:243
|
||||
msgid "labels.cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
@ -779,19 +678,19 @@ msgstr "キャンセル"
|
||||
msgid "labels.comments"
|
||||
msgstr "コメント"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1256, src/app/main/ui/workspace/main_menu.cljs:165
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:479, src/app/main/ui/workspace/main_menu.cljs:165
|
||||
msgid "labels.community"
|
||||
msgstr "コミュニティ"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:103
|
||||
#: src/app/main/ui/settings/password.cljs:109
|
||||
msgid "labels.confirm-password"
|
||||
msgstr "パスワードを確認"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:202, src/app/main/ui/dashboard/deleted.cljs:46, src/app/main/ui/dashboard/deleted.cljs:281, src/app/main/ui/dashboard/file_menu.cljs:210, src/app/main/ui/dashboard/import.cljs:633, src/app/main/ui/dashboard/team.cljs:903, src/app/main/ui/exports/files.cljs:206, src/app/main/ui/settings/subscription.cljs:330, src/app/main/ui/settings/subscription.cljs:364, src/app/main/ui/settings/subscription.cljs:891
|
||||
#: src/app/main/ui/auth/login.cljs:208, src/app/main/ui/dashboard/deleted.cljs:46, src/app/main/ui/dashboard/deleted.cljs:281, src/app/main/ui/dashboard/file_menu.cljs:235, src/app/main/ui/dashboard/import.cljs:664, src/app/main/ui/dashboard/team.cljs:909, src/app/main/ui/exports/files.cljs:204, src/app/main/ui/settings/subscription.cljs:330, src/app/main/ui/settings/subscription.cljs:364, src/app/main/ui/settings/subscription.cljs:891
|
||||
msgid "labels.continue"
|
||||
msgstr "続ける"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:203
|
||||
#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:202
|
||||
msgid "labels.create"
|
||||
msgstr "作成"
|
||||
|
||||
@ -803,43 +702,35 @@ msgstr "チームを作成"
|
||||
msgid "labels.create-team.placeholder"
|
||||
msgstr "チームの名前を入力"
|
||||
|
||||
#, unused
|
||||
msgid "labels.custom-fonts"
|
||||
msgstr "カスタムフォント"
|
||||
|
||||
#: src/app/main/ui/settings/sidebar.cljs:86
|
||||
msgid "labels.dashboard"
|
||||
msgstr "ダッシュボード"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:337, src/app/main/ui/dashboard/fonts.cljs:286, src/app/main/ui/dashboard/fonts.cljs:363, src/app/main/ui/dashboard/fonts.cljs:397, src/app/main/ui/dashboard/import.cljs:333, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:1439, src/app/main/ui/settings/integrations.cljs:376, src/app/main/ui/settings/profile.cljs:117, src/app/main/ui/settings/profile.cljs:128, src/app/main/ui/settings/profile.cljs:129, src/app/main/ui/workspace/sidebar/assets/common.cljs:231, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:223, src/app/main/ui/workspace/sidebar/versions.cljs:257, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:353, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:111, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:66, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:378
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:335, src/app/main/ui/dashboard/fonts.cljs:286, src/app/main/ui/dashboard/fonts.cljs:363, src/app/main/ui/dashboard/fonts.cljs:397, src/app/main/ui/dashboard/import.cljs:332, src/app/main/ui/dashboard/project_menu.cljs:116, src/app/main/ui/dashboard/team.cljs:1445, src/app/main/ui/settings/integrations.cljs:376, src/app/main/ui/settings/profile.cljs:117, src/app/main/ui/settings/profile.cljs:128, src/app/main/ui/settings/profile.cljs:129, src/app/main/ui/workspace/sidebar/assets/common.cljs:231, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:222, src/app/main/ui/workspace/sidebar/versions.cljs:257, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:353, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:111, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:66, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:394
|
||||
msgid "labels.delete"
|
||||
msgstr "削除"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:1019
|
||||
#: src/app/main/ui/comments.cljs:1047
|
||||
msgid "labels.delete-comment"
|
||||
msgstr "コメントを削除"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:941
|
||||
#: src/app/main/ui/comments.cljs:969
|
||||
msgid "labels.delete-comment-thread"
|
||||
msgstr "スレッドを削除"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1210
|
||||
#: src/app/main/ui/dashboard/team.cljs:1216
|
||||
msgid "labels.delete-invitation"
|
||||
msgstr "招待を削除"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:30, src/app/main/ui/dashboard/files.cljs:81, src/app/main/ui/dashboard/files.cljs:186, src/app/main/ui/dashboard/projects.cljs:231, src/app/main/ui/dashboard/projects.cljs:235, src/app/main/ui/dashboard/sidebar.cljs:1139
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:86, src/app/main/ui/dashboard/files.cljs:207, src/app/main/ui/dashboard/projects.cljs:225, src/app/main/ui/dashboard/projects.cljs:228, src/app/main/ui/dashboard/sidebar.cljs:362
|
||||
msgid "labels.drafts"
|
||||
msgstr "下書き"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:1015, src/app/main/ui/dashboard/fonts.cljs:280, src/app/main/ui/dashboard/import.cljs:327, src/app/main/ui/dashboard/team.cljs:1437, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:218, src/app/main/ui/workspace/tokens/themes.cljs:52
|
||||
#: src/app/main/ui/comments.cljs:1043, src/app/main/ui/dashboard/fonts.cljs:280, src/app/main/ui/dashboard/import.cljs:326, src/app/main/ui/dashboard/team.cljs:1443, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:217, src/app/main/ui/workspace/tokens/themes.cljs:52
|
||||
msgid "labels.edit"
|
||||
msgstr "編集"
|
||||
|
||||
#, unused
|
||||
msgid "labels.edit-file"
|
||||
msgstr "ファイルを編集"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:430, src/app/main/ui/dashboard/team.cljs:677, src/app/main/ui/dashboard/team.cljs:710, src/app/main/ui/onboarding/team_choice.cljs:71
|
||||
#: src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:405, src/app/main/ui/dashboard/team.cljs:430, src/app/main/ui/dashboard/team.cljs:677, src/app/main/ui/dashboard/team.cljs:710, src/app/main/ui/dashboard/team.cljs:890, src/app/main/ui/onboarding/team_choice.cljs:71
|
||||
msgid "labels.editor"
|
||||
msgstr "エディタ"
|
||||
|
||||
@ -847,7 +738,7 @@ msgstr "エディタ"
|
||||
msgid "labels.expired-invitation"
|
||||
msgstr "失効済み"
|
||||
|
||||
#: src/app/main/ui/exports/assets.cljs:172, src/app/main/ui/settings/shortcuts.cljs:548, src/app/main/ui/workspace/tokens/sidebar.cljs:134
|
||||
#: src/app/main/ui/exports/assets.cljs:172, src/app/main/ui/settings/shortcuts.cljs:548, src/app/main/ui/workspace/tokens/sidebar.cljs:145
|
||||
msgid "labels.export"
|
||||
msgstr "エクスポート"
|
||||
|
||||
@ -863,23 +754,23 @@ msgstr "フォントファミリー"
|
||||
msgid "labels.font-variants"
|
||||
msgstr "スタイル"
|
||||
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:1152
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:375
|
||||
msgid "labels.fonts"
|
||||
msgstr "フォント"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1250, src/app/main/ui/workspace/main_menu.cljs:201
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:473, src/app/main/ui/workspace/main_menu.cljs:201
|
||||
msgid "labels.github-repo"
|
||||
msgstr "GitHubレポジトリ"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1224, src/app/main/ui/workspace/main_menu.cljs:230
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:447, src/app/main/ui/workspace/main_menu.cljs:230
|
||||
msgid "labels.give-feedback"
|
||||
msgstr "フィードバックする"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:103, src/app/main/ui/auth/register.cljs:376, src/app/main/ui/static.cljs:199, src/app/main/ui/viewer/login.cljs:122
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:103, src/app/main/ui/auth/register.cljs:365, src/app/main/ui/static.cljs:208, src/app/main/ui/viewer/login.cljs:132
|
||||
msgid "labels.go-back"
|
||||
msgstr "戻る"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1207, src/app/main/ui/workspace/main_menu.cljs:156, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1351, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1379, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1568
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:430, src/app/main/ui/workspace/main_menu.cljs:156, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1353, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1381, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1570
|
||||
msgid "labels.help-center"
|
||||
msgstr "ヘルプセンター"
|
||||
|
||||
@ -887,11 +778,11 @@ msgstr "ヘルプセンター"
|
||||
msgid "labels.hide-resolved-comments"
|
||||
msgstr "解決済みのコメントを非表示"
|
||||
|
||||
#: src/app/main/ui/static.cljs:411
|
||||
#: src/app/main/ui/static.cljs:420
|
||||
msgid "labels.internal-error.main-message"
|
||||
msgstr "内部エラー"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:585, src/app/main/ui/dashboard/team.cljs:127, src/app/main/ui/dashboard/team.cljs:135, src/app/main/ui/dashboard/team.cljs:1213
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:233, src/app/main/ui/dashboard/team.cljs:127, src/app/main/ui/dashboard/team.cljs:135, src/app/main/ui/dashboard/team.cljs:1219
|
||||
msgid "labels.invitations"
|
||||
msgstr "招待"
|
||||
|
||||
@ -903,7 +794,7 @@ msgstr "言語"
|
||||
msgid "labels.libraries-and-templates"
|
||||
msgstr "ライブラリ&テンプレート"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1527
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:750
|
||||
msgid "labels.logout"
|
||||
msgstr "ログアウト"
|
||||
|
||||
@ -911,11 +802,11 @@ msgstr "ログアウト"
|
||||
msgid "labels.member"
|
||||
msgstr "メンバー"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:581, src/app/main/ui/dashboard/team.cljs:125, src/app/main/ui/dashboard/team.cljs:133
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:228, src/app/main/ui/dashboard/team.cljs:125, src/app/main/ui/dashboard/team.cljs:133
|
||||
msgid "labels.members"
|
||||
msgstr "メンバー"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:96
|
||||
#: src/app/main/ui/settings/password.cljs:102
|
||||
msgid "labels.new-password"
|
||||
msgstr "新しいパスワード"
|
||||
|
||||
@ -923,28 +814,19 @@ msgstr "新しいパスワード"
|
||||
msgid "labels.no-invitations"
|
||||
msgstr "招待がありません。"
|
||||
|
||||
#: src/app/main/ui/static.cljs:311
|
||||
#: src/app/main/ui/static.cljs:320
|
||||
msgid "labels.not-found.main-message"
|
||||
msgstr "おっと!"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:89
|
||||
#: src/app/main/ui/settings/password.cljs:95
|
||||
msgid "labels.old-password"
|
||||
msgstr "以前のパスワード"
|
||||
|
||||
#: src/app/main/ui/workspace/comments.cljs
|
||||
#, unused
|
||||
msgid "labels.only-yours"
|
||||
msgstr "あなた専用"
|
||||
|
||||
#, unused
|
||||
msgid "labels.or"
|
||||
msgstr "または"
|
||||
|
||||
#: src/app/main/ui/settings/profile.cljs:149, src/app/main/ui/settings/sidebar.cljs:96
|
||||
msgid "labels.profile"
|
||||
msgstr "プロフィール"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1132
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:355
|
||||
msgid "labels.projects"
|
||||
msgstr "プロジェクト"
|
||||
|
||||
@ -952,7 +834,7 @@ msgstr "プロジェクト"
|
||||
msgid "labels.release-notes"
|
||||
msgstr "リリースノート"
|
||||
|
||||
#: src/app/main/ui/forms.cljs:191, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:167, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406
|
||||
#: src/app/main/ui/forms.cljs:191, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:167, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402
|
||||
msgid "labels.remove"
|
||||
msgstr "削除"
|
||||
|
||||
@ -960,7 +842,7 @@ msgstr "削除"
|
||||
msgid "labels.remove-member"
|
||||
msgstr "メンバーを削除"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/dashboard/project_menu.cljs:88, src/app/main/ui/dashboard/sidebar.cljs:602, src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/versions.cljs:228, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:76, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:101, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:63
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:298, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:251, src/app/main/ui/dashboard/project_menu.cljs:90, src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/versions.cljs:228, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:76, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:101, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:63
|
||||
msgid "labels.rename"
|
||||
msgstr "名前を変更"
|
||||
|
||||
@ -968,10 +850,10 @@ msgstr "名前を変更"
|
||||
msgid "labels.rename-team"
|
||||
msgstr "チーム名を変更"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1207
|
||||
#: src/app/main/ui/dashboard/team.cljs:1213
|
||||
msgid "labels.resend-invitation"
|
||||
msgstr "招待を再送"
|
||||
|
||||
#: src/app/main/ui/components/progress.cljs:80, src/app/main/ui/static.cljs:324, src/app/main/ui/static.cljs:333, src/app/main/ui/static.cljs:428
|
||||
#: src/app/main/ui/components/progress.cljs:80, src/app/main/ui/static.cljs:333, src/app/main/ui/static.cljs:342, src/app/main/ui/static.cljs:437
|
||||
msgid "labels.retry"
|
||||
msgstr "リトライ"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -12,78 +12,61 @@ msgstr ""
|
||||
"(n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "Jau turite paskyrą?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"Pasitikrinkite savo el. paštą, ten rasite pranešimą su nuorodą, kurią "
|
||||
"paspaudę galėsite pradėti naudotis Penpot."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Slaptažodžio patvirtinimas"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "Kurti demonstracinę paskyrą"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "Norite tik išmėginti?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"Tai yra DEMONSTRACINĖ versija, NEKURKITE tikrų darbų, nes projektai "
|
||||
"periodiškai - šalinami."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "Pamiršote slaptažodį?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "Vardas ir Pavardė"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "Prisijungimas čia"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "Prisijungti"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "GitLab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Įveskite naują slaptažodį"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "Slaptažodis sėkmingai pakeistas"
|
||||
|
||||
@ -95,19 +78,19 @@ msgstr "Paskyra yra nepatvirtinta, prieš tęsdami patikrinkite paskyrą."
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "Slaptažodžio atkūrimo nuoroda išsiųsta į jūsų pašto dėžutę."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "Sėkmingai prisijungė prie komandos"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "Slaptažodis"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "Ne mažiau kaip 8 simboliai"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "Privatumo politika"
|
||||
|
||||
@ -115,45 +98,35 @@ msgstr "Privatumo politika"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Atkurti slaptažodį"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "Atsiųsime jums el. laišką su instrukcijomis"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "Pamiršote slaptažodį?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "Slaptažodžio keitimas"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "Dar neturite paskyros?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "Sukurti paskyrą"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Sukurti paskyrą"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "Atviro kodo dizaino ir prototipų kūrimo sprendimas."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "Paslaugų teikimo sąlygos"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "Išsiuntėme patvirtinimo el. laišką adresu"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "Paskelbti"
|
||||
|
||||
@ -226,45 +199,25 @@ msgstr "Dalinkitės prototipais"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "Rinktis viską"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:344
|
||||
#: src/app/main/ui/workspace/libraries.cljs:432, src/app/main/ui/workspace/libraries.cljs:833
|
||||
msgid "common.unpublish"
|
||||
msgstr "Atšaukti paskelbimą"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "Komandos valdymas"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:95
|
||||
#: src/app/main/ui/dashboard/projects.cljs:89
|
||||
msgid "dasboard.team-hero.text"
|
||||
msgstr ""
|
||||
"Penpot yra skirtas komandoms. Pakvieskite narius bendram darbui su "
|
||||
"projektais ir failais"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:93
|
||||
#: src/app/main/ui/dashboard/projects.cljs:87
|
||||
msgid "dasboard.team-hero.title"
|
||||
msgstr "Suburkite komandą!"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.info"
|
||||
msgstr "Išmokite Penpot pagrindus ir mėgaukitės šia pamoka."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.start"
|
||||
msgstr "Pradėti pamoką"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.info"
|
||||
msgstr "Panagrinėkite Penpot ir susipažinkite su pagrindinėmis jo savybėmis."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.start"
|
||||
msgstr "Pradėkite apžvalgą"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "Pridėti kaip bendrinamą biblioteką"
|
||||
|
||||
@ -272,11 +225,11 @@ msgstr "Pridėti kaip bendrinamą biblioteką"
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Keisti el. paštą"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(kopija)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "Sukurti naują komandą"
|
||||
|
||||
@ -284,15 +237,15 @@ msgstr "Sukurti naują komandą"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "Jūsų Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "Naikinti komandą"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:305, src/app/main/ui/dashboard/project_menu.cljs:92
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:302, src/app/main/ui/dashboard/project_menu.cljs:94
|
||||
msgid "dashboard.duplicate"
|
||||
msgstr "Dublikatas"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:269
|
||||
msgid "dashboard.duplicate-multi"
|
||||
msgstr "Dubliuoti %s failus"
|
||||
|
||||
@ -304,10 +257,6 @@ msgstr "Eksportuokite darbalaukius į PDF"
|
||||
msgid "dashboard.export-frames.title"
|
||||
msgstr "Eksportuoti į PDF"
|
||||
|
||||
#, unused
|
||||
msgid "dashboard.export-multi"
|
||||
msgstr "Eksportuoti Penpot %s failus"
|
||||
|
||||
#: src/app/main/ui/exports/assets.cljs:108
|
||||
msgid "dashboard.export-multiple.selected"
|
||||
msgstr "Pasirinkta %s iš %s elementų"
|
||||
@ -377,20 +326,15 @@ msgstr ""
|
||||
msgid "dashboard.fonts.upload-all"
|
||||
msgstr "Įkelti viską"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:941, src/app/main/ui/dashboard/project_menu.cljs:109
|
||||
#: src/app/main/ui/dashboard/import.cljs:995, src/app/main/ui/dashboard/project_menu.cljs:110
|
||||
msgid "dashboard.import"
|
||||
msgstr "Importuokite Penpot failus"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:342, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
#: src/app/main/ui/dashboard/import.cljs:343, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
msgid "dashboard.import.analyze-error"
|
||||
msgstr "Oi! Nepavyko importuoti šio failo"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:292
|
||||
#, unused
|
||||
msgid "dashboard.import.import-error"
|
||||
msgstr "Iškilo problema importuojant failą. Failas nebuvo importuotas."
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:556
|
||||
#: src/app/main/ui/dashboard/import.cljs:587
|
||||
msgid "dashboard.import.import-warning"
|
||||
msgstr "Kai kuriuose failuose buvo netinkamų objektų, kurie buvo pašalinti."
|
||||
|
||||
@ -422,15 +366,15 @@ msgstr "Įkeliami duomenys į serverį (%s/%s)"
|
||||
msgid "dashboard.import.progress.upload-media"
|
||||
msgstr "Įkeliamas failas: %s"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:537, src/app/main/data/dashboard.cljs:649
|
||||
#: src/app/main/data/dashboard.cljs:506, src/app/main/data/dashboard.cljs:618
|
||||
msgid "dashboard.new-file-prefix"
|
||||
msgstr "Naujas failas"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:67
|
||||
#: src/app/main/ui/dashboard/projects.cljs:59
|
||||
msgid "dashboard.new-project"
|
||||
msgstr "+ Naujas projektas"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:290, src/app/main/data/dashboard.cljs:652
|
||||
#: src/app/main/data/dashboard.cljs:259, src/app/main/data/dashboard.cljs:621
|
||||
msgid "dashboard.new-project-prefix"
|
||||
msgstr "Naujas projektas"
|
||||
|
||||
@ -438,43 +382,43 @@ msgstr "Naujas projektas"
|
||||
msgid "dashboard.no-matches-for"
|
||||
msgstr "Nerasta jokių atitikmenų pagal \"%s\""
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1177
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:400
|
||||
msgid "dashboard.no-projects-placeholder"
|
||||
msgstr "Prisegti projektai bus rodomi čia"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:37
|
||||
#: src/app/main/ui/auth/verify_token.cljs:38
|
||||
msgid "dashboard.notifications.email-changed-successfully"
|
||||
msgstr "Jūsų el. pašto adresas sėkmingai atnaujintas"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:31
|
||||
#: src/app/main/ui/auth/verify_token.cljs:32
|
||||
msgid "dashboard.notifications.email-verified-successfully"
|
||||
msgstr "Jūsų el. pašto adresas buvo sėkmingai patvirtintas"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:46
|
||||
#: src/app/main/ui/settings/password.cljs:52
|
||||
msgid "dashboard.notifications.password-saved"
|
||||
msgstr "Slaptažodis sėkmingai išsaugotas!"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1719
|
||||
#: src/app/main/ui/dashboard/team.cljs:1725
|
||||
msgid "dashboard.num-of-members"
|
||||
msgstr "%s nariai"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:296
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:294
|
||||
msgid "dashboard.open-in-new-tab"
|
||||
msgstr "Atidarykite failą naujame skirtuke"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:124, src/app/main/ui/dashboard/grid.cljs:428, src/app/main/ui/dashboard/projects.cljs:268, src/app/main/ui/dashboard/projects.cljs:269
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:143, src/app/main/ui/dashboard/grid.cljs:427, src/app/main/ui/dashboard/grid.cljs:438, src/app/main/ui/dashboard/grid.cljs:480, src/app/main/ui/dashboard/projects.cljs:217, src/app/main/ui/dashboard/projects.cljs:274, src/app/main/ui/dashboard/sidebar.cljs:156
|
||||
msgid "dashboard.options"
|
||||
msgstr "Nustatymai"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:120
|
||||
#: src/app/main/ui/settings/password.cljs:112, src/app/main/ui/settings/password.cljs:126
|
||||
msgid "dashboard.password-change"
|
||||
msgstr "Keisti slaptažodį"
|
||||
|
||||
#: src/app/main/ui/dashboard/pin_button.cljs:22, src/app/main/ui/dashboard/project_menu.cljs:96
|
||||
#: src/app/main/ui/dashboard/files.cljs:122, src/app/main/ui/dashboard/project_menu.cljs:98, src/app/main/ui/dashboard/projects.cljs:251
|
||||
msgid "dashboard.pin-unpin"
|
||||
msgstr "Prisegti/Atsegti"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:59
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:51
|
||||
msgid "dashboard.projects-title"
|
||||
msgstr "Projektai"
|
||||
|
||||
@ -482,27 +426,10 @@ msgstr "Projektai"
|
||||
msgid "dashboard.remove-account"
|
||||
msgstr "Norite pašalinti paskyrą?"
|
||||
|
||||
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
|
||||
#, unused
|
||||
msgid "dashboard.remove-shared"
|
||||
msgstr "Pašalinti kaip bendrinamą biblioteką"
|
||||
|
||||
#: src/app/main/ui/settings/options.cljs:71
|
||||
msgid "dashboard.theme-change"
|
||||
msgstr "Vartotojo sąsajos tema"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "Atkūrimo prieigos raktas neteisingas."
|
||||
|
||||
#: src/app/main/ui/exports/files.cljs:131
|
||||
#, unused
|
||||
msgid "files-download-modal.description-1"
|
||||
msgstr ""
|
||||
"Viename ar keliuose failuose, kuriuos norite eksportuoti, naudojamos "
|
||||
"bendros bibliotekos. Ką norite daryti su jų komponentais*?"
|
||||
|
||||
#: src/app/main/ui/exports/files.cljs:132
|
||||
#, unused
|
||||
msgid "files-download-modal.description-2"
|
||||
msgstr "* Gali apimti komponentus, grafiką, spalvas ir (arba) tipografiją."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11,97 +11,75 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "നിലവിൽ അക്കൗണ്ടുണ്ടോ?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:237
|
||||
#, unused
|
||||
msgid "auth.check-mail"
|
||||
msgstr "നിങ്ങളുടെ ഇമെയിൽ പരിശോധിക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"പെൻപോട്ട് ഉപയോഗിക്കാനും സാധൂകരിക്കാനും നിങ്ങളുടെ ഇമെയിൽ പരിശോധിച്ച് അതിലെ "
|
||||
"കണ്ണിയിൽ ക്ലിക്ക് ചെയ്യുക."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "പാസ്വേഡ് സ്ഥിരീകരിക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "ഡെമോ അക്കൗണ്ട് സൃഷ്ടിക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "ഒന്നുപയോഗിച്ച് നോക്കുന്നോ?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"ഇതൊരു ഡെമോ സേവനമാണ്, ഒരു യഥാർത്ഥ ജോലിക്ക് ഉപയോഗിക്കരുത്, പ്രൊജക്റ്റുകൾ "
|
||||
"നിശ്ചിതസമയങ്ങളിൽ മായ്ക്കപ്പെടും."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "പാസ്വേഡ് മറന്നോ?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "മുഴുവൻ പേര്"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:288
|
||||
#: src/app/main/ui/auth/login.cljs:294
|
||||
msgid "auth.login-account-title"
|
||||
msgstr "എന്റെ അക്കൗണ്ടിലേക്ക് പ്രവേശിക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "ഇവിടെ ലോഗിൻ ചെയ്യുക."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "ലോഗിൻ"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:291
|
||||
#: src/app/main/ui/auth/login.cljs:297
|
||||
msgid "auth.login-tagline"
|
||||
msgstr ""
|
||||
"ഡിസൈനിങിലും കോഡിങിലും സഹകരിച്ച് പ്രവർത്തിക്കാനുള്ള ഒരു ഓപ്പൺസോഴ്സ് ഡിസൈൻ "
|
||||
"ഉപകരണമാണ് പെൻപോട്ട്"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "ഗിറ്റ്ഹബ്ബ്"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "ഗിറ്റ്ലാബ്"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "ഗൂഗിൾ"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "ഓപ്പൺഐഡി"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "പുതിയൊരു പാസ്വേഡ് ചേർക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:61
|
||||
#: src/app/main/ui/auth/verify_token.cljs:81
|
||||
msgid "auth.notifications.organization-invitation-accepted"
|
||||
msgstr "നിങ്ങളിപ്പോൾ %s-ന്റെ ഭാഗമാണ്"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "പാസ്വേഡ് വിജയകരമായി മാറ്റി"
|
||||
|
||||
@ -113,19 +91,19 @@ msgstr "പ്രൊഫൈൽ സാധൂകരിച്ചിട്ടില
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "പാസ്വേഡ് വീണ്ടെടുപ്പ് കണ്ണി നിങ്ങളുടെ ഇൻബോക്സിലേക്ക് അയച്ചിട്ടുണ്ട്."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "വിജയകരമായി സംഘത്തിൽ ചേർന്നു"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "പാസ്വേഡ്"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "കുറഞ്ഞത് 8 ക്യാരക്റ്ററുകൾ"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "സ്വകാര്യതാനയം"
|
||||
|
||||
@ -133,67 +111,46 @@ msgstr "സ്വകാര്യതാനയം"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "പാസ്വേഡ് വീണ്ടെടുക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "നിർദ്ദേശങ്ങളടങ്ങിയ ഒരു ഇമെയിൽ ഞങ്ങൾ നിങ്ങൾക്ക് അയയ്ക്കും"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "പാസ്വേഡ് മറന്നോ?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "പാസ്വേഡ് മാറ്റുക"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "ഇതുവരെ അക്കൗണ്ട് ഇല്ലേ?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:368
|
||||
#: src/app/main/ui/auth/register.cljs:357
|
||||
msgid "auth.register-account-tagline"
|
||||
msgstr "നിങ്ങളെ ഞങ്ങൾ എന്താണ് ഡാഷ്ബോർഡിലും ഇമെയിലിലും വിളിക്കേണ്ടതെന്ന് അറിയിക്കുക."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:367
|
||||
#: src/app/main/ui/auth/register.cljs:356
|
||||
msgid "auth.register-account-title"
|
||||
msgstr "നിങ്ങളുടെ പേര്"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "അക്കൗണ്ട് സൃഷ്ടിക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "ഡിസൈനിങിനും പ്രോട്ടോടൈപ്പിങിനുമുള്ള ഓപ്പൺ സോഴ്സ് പ്രതിവിധി."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "ഉപയോഗനിബന്ധനകൾ"
|
||||
|
||||
#, unused
|
||||
msgid "auth.terms-privacy-agreement"
|
||||
msgstr ""
|
||||
"ഒരു അക്കൗണ്ട് സൃഷ്ടിക്കുമ്പോൾ, നിങ്ങൾ ഞങ്ങളുടെ ഉപയോഗനിബന്ധനകളും "
|
||||
"സ്വകാര്യതാനയവും അംഗീകരിക്കുന്നു."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "സാധൂകരിക്കാനുള്ള ഇമെയിൽ ഞങ്ങൾ അയച്ചിരിക്കുന്നു"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:187
|
||||
#: src/app/main/ui/auth/login.cljs:185, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:182
|
||||
msgid "auth.work-email"
|
||||
msgstr "ജോലിക്കുള്ള ഇമെയിൽ"
|
||||
|
||||
#: src/app/main/ui/onboarding/questions.cljs
|
||||
#, unused
|
||||
msgid "branding-illustrations-marketing-pieces"
|
||||
msgstr "...ബ്രാൻഡിങ്, ചിത്രരചനകൾ, മാർക്കറ്റിങ് ശകലങ്ങൾ, തുടങ്ങിയവ."
|
||||
|
||||
#: 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 "എല്ലാ പെൻപോട്ട് ഉപയോക്താക്കളും"
|
||||
@ -250,7 +207,7 @@ msgstr "പ്രോട്ടോടൈപ്പുകൾ പങ്കുവെ
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "എല്ലാം തിരഞ്ഞെടുക്കുക"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "പങ്കിട്ട ലൈബ്രറിയായി ചേർക്കുക"
|
||||
|
||||
@ -258,11 +215,11 @@ msgstr "പങ്കിട്ട ലൈബ്രറിയായി ചേർക
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "ഇമെയിൽ മാറ്റുക"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(പകർത്തുക)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "പുതിയ സംഘം രൂപീകരിക്കുക"
|
||||
|
||||
@ -270,15 +227,15 @@ msgstr "പുതിയ സംഘം രൂപീകരിക്കുക"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "നിങ്ങളുടെ പെൻപോട്ട്"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "സംഘത്തെ നീക്കുക"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:305, src/app/main/ui/dashboard/project_menu.cljs:92
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:302, src/app/main/ui/dashboard/project_menu.cljs:94
|
||||
msgid "dashboard.duplicate"
|
||||
msgstr "പകർപ്പ്"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:269
|
||||
msgid "dashboard.duplicate-multi"
|
||||
msgstr "%s ഫയലുകളുടെ പകർപ്പ്"
|
||||
|
||||
@ -290,19 +247,10 @@ msgstr "ആർട്ട്ബോർഡുകൾ പിഡിഎഫായി എ
|
||||
msgid "dashboard.export-frames.title"
|
||||
msgstr "പിഡിഎഫായി എക്സ്പോർട്ട് ചെയ്യുക"
|
||||
|
||||
#, unused
|
||||
msgid "dashboard.export-multi"
|
||||
msgstr "പെൻപോട്ട് %s ഫയലുകൾ എക്സ്പോർട്ട് ചെയ്യുക"
|
||||
|
||||
#: src/app/main/ui/workspace/main_menu.cljs:728
|
||||
msgid "dashboard.export-shapes"
|
||||
msgstr "എക്സ്പോർട്ട്"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "റിക്കവറി ടോക്കൺ അസാധുവാണ്."
|
||||
|
||||
#: src/app/main/ui/exports/files.cljs:132
|
||||
#, unused
|
||||
msgid "files-download-modal.description-2"
|
||||
msgstr "* ഘടകങ്ങൾ, ഗ്രാഫിക്സ്, നിറങ്ങൾ അല്ലെങ്കിൽ മുദ്രണകലകൾ എന്നിവ ഉൾപ്പെടാം."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11,23 +11,23 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Bekreft passord"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "Glemt passordet?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "Fullt navn"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Skriv inn et nytt passord"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "Passord"
|
||||
|
||||
@ -35,27 +35,27 @@ msgstr "Passord"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Gjenopprett passord"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "Endre passordet ditt"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "Ingen konto enda?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "Opprett konto"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Opprett konto"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "Legg til som delt bibliotek"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(kopi)"
|
||||
|
||||
@ -63,7 +63,7 @@ msgstr "(kopi)"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "Din Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "Slett lag"
|
||||
|
||||
@ -71,7 +71,7 @@ msgstr "Slett lag"
|
||||
msgid "dashboard.invite-profile"
|
||||
msgstr "Inviter til team"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:608, src/app/main/ui/dashboard/sidebar.cljs:615, src/app/main/ui/dashboard/sidebar.cljs:620, src/app/main/ui/dashboard/team.cljs:464
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:257, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:263, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:268, src/app/main/ui/dashboard/team.cljs:464
|
||||
msgid "dashboard.leave-team"
|
||||
msgstr "Forlat team"
|
||||
|
||||
@ -79,43 +79,43 @@ msgstr "Forlat team"
|
||||
msgid "dashboard.libraries-title"
|
||||
msgstr "Delte biblioteker"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:313, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:308, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
msgid "dashboard.move-to"
|
||||
msgstr "Flytt til"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:277
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
msgid "dashboard.move-to-multi"
|
||||
msgstr "Flytt %s filer til"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:249
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:73
|
||||
msgid "dashboard.move-to-other-team"
|
||||
msgstr "Flytt til annet team"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:111, src/app/main/ui/dashboard/projects.cljs:259, src/app/main/ui/dashboard/projects.cljs:260
|
||||
#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:259
|
||||
msgid "dashboard.new-file"
|
||||
msgstr "+ Ny fil"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:67
|
||||
#: src/app/main/ui/dashboard/projects.cljs:59
|
||||
msgid "dashboard.new-project"
|
||||
msgstr "+ Nytt prosjekt"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1719
|
||||
#: src/app/main/ui/dashboard/team.cljs:1725
|
||||
msgid "dashboard.num-of-members"
|
||||
msgstr "%s medlemmer"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:296
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:294
|
||||
msgid "dashboard.open-in-new-tab"
|
||||
msgstr "Åpne fil i ny fane"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:120
|
||||
#: src/app/main/ui/settings/password.cljs:112, src/app/main/ui/settings/password.cljs:126
|
||||
msgid "dashboard.password-change"
|
||||
msgstr "Endre passord"
|
||||
|
||||
#: src/app/main/ui/dashboard/pin_button.cljs:22, src/app/main/ui/dashboard/project_menu.cljs:96
|
||||
#: src/app/main/ui/dashboard/files.cljs:122, src/app/main/ui/dashboard/project_menu.cljs:98, src/app/main/ui/dashboard/projects.cljs:251
|
||||
msgid "dashboard.pin-unpin"
|
||||
msgstr "Fest/løsne"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:59
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:65, src/app/main/ui/dashboard/projects.cljs:51
|
||||
msgid "dashboard.projects-title"
|
||||
msgstr "Prosjekter"
|
||||
|
||||
@ -123,12 +123,7 @@ msgstr "Prosjekter"
|
||||
msgid "dashboard.remove-account"
|
||||
msgstr "Ønsker du å fjerne kontoen din?"
|
||||
|
||||
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
|
||||
#, unused
|
||||
msgid "dashboard.remove-shared"
|
||||
msgstr "Fjern som delt bibliotek"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:282, src/app/main/ui/dashboard/sidebar.cljs:283, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:228, src/app/main/ui/dashboard/sidebar.cljs:229, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
msgid "dashboard.search-placeholder"
|
||||
msgstr "Søk …"
|
||||
|
||||
@ -144,19 +139,19 @@ msgstr "Velg grensesnittsspråk"
|
||||
msgid "dashboard.select-ui-theme"
|
||||
msgstr "Velg drakt"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:292
|
||||
#: src/app/main/ui/dashboard/projects.cljs:288
|
||||
msgid "dashboard.show-all-files"
|
||||
msgstr "Vis alle filer"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1663
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
msgstr "Teaminfo"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1708
|
||||
#: src/app/main/ui/dashboard/team.cljs:1714
|
||||
msgid "dashboard.team-members"
|
||||
msgstr "Teammedlemmer"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1723
|
||||
#: src/app/main/ui/dashboard/team.cljs:1729
|
||||
msgid "dashboard.team-projects"
|
||||
msgstr "Lagprosjekter"
|
||||
|
||||
@ -172,11 +167,11 @@ msgstr "Din konto"
|
||||
msgid "dashboard.your-name"
|
||||
msgstr "Ditt navn"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:691, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
#: src/app/main/ui/comments.cljs:719, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
msgid "ds.confirm-cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
#: src/app/main/ui/confirm.cljs:44, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:156, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:102
|
||||
msgid "ds.confirm-ok"
|
||||
msgstr "OK"
|
||||
|
||||
@ -188,11 +183,11 @@ msgstr "Er du sikker?"
|
||||
msgid "errors.invalid-color"
|
||||
msgstr "Ugyldig farge"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "Gjenopprettelsessymbolet er ugyldig."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:75
|
||||
#: src/app/main/ui/auth/verify_token.cljs:95
|
||||
msgid "errors.unexpected-token"
|
||||
msgstr "Ukjent symbol"
|
||||
|
||||
@ -204,50 +199,15 @@ msgstr "Beskrivelse"
|
||||
msgid "feedback.subject"
|
||||
msgstr "Emne"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:152
|
||||
#, unused
|
||||
msgid "inspect.attributes.blur.value"
|
||||
msgstr "Verdi"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/common.cljs:78, src/app/main/ui/inspect/styles/rows/color_properties_row.cljs:129
|
||||
msgid "inspect.attributes.image.download"
|
||||
msgstr "Last ned kildebilde"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/image.cljs:39
|
||||
#, unused
|
||||
msgid "inspect.attributes.image.height"
|
||||
msgstr "Høyde"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/image.cljs:32
|
||||
#, unused
|
||||
msgid "inspect.attributes.image.width"
|
||||
msgstr "Bredde"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.height"
|
||||
msgstr "Høyde"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.left"
|
||||
msgstr "Venstre"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.width"
|
||||
msgstr "Bredde"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/shadow.cljs:66
|
||||
msgid "inspect.attributes.shadow"
|
||||
msgstr "Skygge"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/stroke.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.stroke.width"
|
||||
msgstr "Bredde"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/text.cljs:53, src/app/main/ui/inspect/attributes/text.cljs:159
|
||||
#: src/app/main/ui/inspect/attributes/text.cljs:53, src/app/main/ui/inspect/attributes/text.cljs:158
|
||||
msgid "inspect.attributes.typography"
|
||||
msgstr "Typografi"
|
||||
|
||||
@ -287,11 +247,11 @@ msgstr "SVG"
|
||||
msgid "inspect.tabs.code.selected.text"
|
||||
msgstr "Tekst"
|
||||
|
||||
#: src/app/main/data/common.cljs:92, src/app/main/data/team.cljs:193, src/app/main/data/team.cljs:650, src/app/main/ui/dashboard/import.cljs:640, src/app/main/ui/dashboard/import.cljs:646
|
||||
#: src/app/main/data/common.cljs:92, src/app/main/data/team.cljs:193, src/app/main/data/team.cljs:650, src/app/main/ui/dashboard/import.cljs:671, src/app/main/ui/dashboard/import.cljs:677
|
||||
msgid "labels.accept"
|
||||
msgstr "Godta"
|
||||
|
||||
#: src/app/main/data/common.cljs:121, src/app/main/ui/dashboard/change_owner.cljs:67, src/app/main/ui/dashboard/change_owner.cljs:174, src/app/main/ui/dashboard/import.cljs:626, src/app/main/ui/dashboard/team.cljs:896, src/app/main/ui/dashboard/team.cljs:1405, src/app/main/ui/delete_shared.cljs:36, src/app/main/ui/exports/assets.cljs:163, src/app/main/ui/exports/files.cljs:201, src/app/main/ui/settings/import_shortcuts_diff_modal.cljs:156, src/app/main/ui/settings/integrations.cljs:220, src/app/main/ui/settings/restore_shortcuts_modal.cljs:165, src/app/main/ui/shortcuts.cljs:578, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:178, src/app/main/ui/workspace/tokens/export/modal.cljs:43, src/app/main/ui/workspace/tokens/import/modal.cljs:268, src/app/main/ui/workspace/tokens/import_from_library.cljs:88, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:360, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:73, src/app/main/ui/workspace/tokens/settings/menu.cljs:104, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:242
|
||||
#: src/app/main/data/common.cljs:121, src/app/main/data/nitrate.cljs:532, src/app/main/data/nitrate.cljs:617, src/app/main/ui/dashboard/change_owner.cljs:67, src/app/main/ui/dashboard/change_owner.cljs:174, src/app/main/ui/dashboard/import.cljs:657, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/dashboard/team.cljs:1411, src/app/main/ui/delete_shared.cljs:36, src/app/main/ui/exports/assets.cljs:163, src/app/main/ui/exports/files.cljs:199, src/app/main/ui/settings/import_shortcuts_diff_modal.cljs:156, src/app/main/ui/settings/integrations.cljs:220, src/app/main/ui/settings/restore_shortcuts_modal.cljs:165, src/app/main/ui/shortcuts.cljs:651, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:178, src/app/main/ui/workspace/tokens/export/modal.cljs:43, src/app/main/ui/workspace/tokens/import/modal.cljs:268, src/app/main/ui/workspace/tokens/import_from_library.cljs:88, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:360, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:73, src/app/main/ui/workspace/tokens/settings/menu.cljs:104, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:243
|
||||
msgid "labels.cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
@ -299,11 +259,11 @@ msgstr "Avbryt"
|
||||
msgid "labels.code"
|
||||
msgstr "Kode"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:103
|
||||
#: src/app/main/ui/settings/password.cljs:109
|
||||
msgid "labels.confirm-password"
|
||||
msgstr "Bekreft passord"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:203
|
||||
#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:202
|
||||
msgid "labels.create"
|
||||
msgstr "Opprett"
|
||||
|
||||
@ -315,35 +275,31 @@ msgstr "Opprett nytt lag"
|
||||
msgid "labels.create-team.placeholder"
|
||||
msgstr "Skriv inn nytt lagnavn"
|
||||
|
||||
#, unused
|
||||
msgid "labels.custom-fonts"
|
||||
msgstr "Egendefinerte skrifter"
|
||||
|
||||
#: src/app/main/ui/settings/sidebar.cljs:86
|
||||
msgid "labels.dashboard"
|
||||
msgstr "Oversikt"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:337, src/app/main/ui/dashboard/fonts.cljs:286, src/app/main/ui/dashboard/fonts.cljs:363, src/app/main/ui/dashboard/fonts.cljs:397, src/app/main/ui/dashboard/import.cljs:333, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:1439, src/app/main/ui/settings/integrations.cljs:376, src/app/main/ui/settings/profile.cljs:117, src/app/main/ui/settings/profile.cljs:128, src/app/main/ui/settings/profile.cljs:129, src/app/main/ui/workspace/sidebar/assets/common.cljs:231, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:223, src/app/main/ui/workspace/sidebar/versions.cljs:257, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:353, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:111, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:66, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:378
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:335, src/app/main/ui/dashboard/fonts.cljs:286, src/app/main/ui/dashboard/fonts.cljs:363, src/app/main/ui/dashboard/fonts.cljs:397, src/app/main/ui/dashboard/import.cljs:332, src/app/main/ui/dashboard/project_menu.cljs:116, src/app/main/ui/dashboard/team.cljs:1445, src/app/main/ui/settings/integrations.cljs:376, src/app/main/ui/settings/profile.cljs:117, src/app/main/ui/settings/profile.cljs:128, src/app/main/ui/settings/profile.cljs:129, src/app/main/ui/workspace/sidebar/assets/common.cljs:231, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:222, src/app/main/ui/workspace/sidebar/versions.cljs:257, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:353, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:111, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:66, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:394
|
||||
msgid "labels.delete"
|
||||
msgstr "Slett"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:1019
|
||||
#: src/app/main/ui/comments.cljs:1047
|
||||
msgid "labels.delete-comment"
|
||||
msgstr "Slett kommentar"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:941
|
||||
#: src/app/main/ui/comments.cljs:969
|
||||
msgid "labels.delete-comment-thread"
|
||||
msgstr "Slett tråd"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:292
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:289
|
||||
msgid "labels.delete-multi-files"
|
||||
msgstr "Slett %s filer"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:30, src/app/main/ui/dashboard/files.cljs:81, src/app/main/ui/dashboard/files.cljs:186, src/app/main/ui/dashboard/projects.cljs:231, src/app/main/ui/dashboard/projects.cljs:235, src/app/main/ui/dashboard/sidebar.cljs:1139
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:86, src/app/main/ui/dashboard/files.cljs:207, src/app/main/ui/dashboard/projects.cljs:225, src/app/main/ui/dashboard/projects.cljs:228, src/app/main/ui/dashboard/sidebar.cljs:362
|
||||
msgid "labels.drafts"
|
||||
msgstr "Kladder"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:1015, src/app/main/ui/dashboard/fonts.cljs:280, src/app/main/ui/dashboard/import.cljs:327, src/app/main/ui/dashboard/team.cljs:1437, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:218, src/app/main/ui/workspace/tokens/themes.cljs:52
|
||||
#: src/app/main/ui/comments.cljs:1043, src/app/main/ui/dashboard/fonts.cljs:280, src/app/main/ui/dashboard/import.cljs:326, src/app/main/ui/dashboard/team.cljs:1443, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:217, src/app/main/ui/workspace/tokens/themes.cljs:52
|
||||
msgid "labels.edit"
|
||||
msgstr "Rediger"
|
||||
|
||||
@ -351,11 +307,7 @@ msgstr "Rediger"
|
||||
msgid "labels.font-family"
|
||||
msgstr "Skriftfamilie"
|
||||
|
||||
#, unused
|
||||
msgid "labels.font-providers"
|
||||
msgstr "Skrifttilbydere"
|
||||
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:1152
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:375
|
||||
msgid "labels.fonts"
|
||||
msgstr "Skrifter"
|
||||
|
||||
@ -371,23 +323,23 @@ msgstr "Installerte skrifter"
|
||||
msgid "labels.language"
|
||||
msgstr "Språk"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1527
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:750
|
||||
msgid "labels.logout"
|
||||
msgstr "Logg ut"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:581, src/app/main/ui/dashboard/team.cljs:125, src/app/main/ui/dashboard/team.cljs:133
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:228, src/app/main/ui/dashboard/team.cljs:125, src/app/main/ui/dashboard/team.cljs:133
|
||||
msgid "labels.members"
|
||||
msgstr "Medlemmer"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:96
|
||||
#: src/app/main/ui/settings/password.cljs:102
|
||||
msgid "labels.new-password"
|
||||
msgstr "Nytt passord"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:89
|
||||
#: src/app/main/ui/settings/password.cljs:95
|
||||
msgid "labels.old-password"
|
||||
msgstr "Gammelt passord"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:437, src/app/main/ui/dashboard/team.cljs:675, src/app/main/ui/dashboard/team.cljs:1714
|
||||
#: src/app/main/ui/dashboard/team.cljs:403, src/app/main/ui/dashboard/team.cljs:437, src/app/main/ui/dashboard/team.cljs:675, src/app/main/ui/dashboard/team.cljs:888, src/app/main/ui/dashboard/team.cljs:1720
|
||||
msgid "labels.owner"
|
||||
msgstr "Eier"
|
||||
|
||||
@ -399,27 +351,27 @@ msgstr "Passord"
|
||||
msgid "labels.profile"
|
||||
msgstr "Profil"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1132
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:355
|
||||
msgid "labels.projects"
|
||||
msgstr "Prosjekter"
|
||||
|
||||
#: src/app/main/ui/forms.cljs:191, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:167, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406
|
||||
#: src/app/main/ui/forms.cljs:191, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:167, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402
|
||||
msgid "labels.remove"
|
||||
msgstr "Fjern"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/dashboard/project_menu.cljs:88, src/app/main/ui/dashboard/sidebar.cljs:602, src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/versions.cljs:228, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:76, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:101, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:63
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:298, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:251, src/app/main/ui/dashboard/project_menu.cljs:90, src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/versions.cljs:228, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:76, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:101, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:63
|
||||
msgid "labels.rename"
|
||||
msgstr "Gi nytt navn"
|
||||
|
||||
#: src/app/main/ui/components/progress.cljs:80, src/app/main/ui/static.cljs:324, src/app/main/ui/static.cljs:333, src/app/main/ui/static.cljs:428
|
||||
#: src/app/main/ui/components/progress.cljs:80, src/app/main/ui/static.cljs:333, src/app/main/ui/static.cljs:342, src/app/main/ui/static.cljs:437
|
||||
msgid "labels.retry"
|
||||
msgstr "Prøv igjen"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:624, src/app/main/ui/dashboard/team.cljs:1214
|
||||
#: src/app/main/ui/dashboard/team.cljs:624, src/app/main/ui/dashboard/team.cljs:1220
|
||||
msgid "labels.role"
|
||||
msgstr "Rolle"
|
||||
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:435, src/app/main/ui/shortcuts.cljs:583, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:204, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:364, src/app/main/ui/workspace/tokens/settings/menu.cljs:109
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:435, src/app/main/ui/shortcuts.cljs:656, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:203, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:364, src/app/main/ui/workspace/tokens/settings/menu.cljs:109
|
||||
msgid "labels.save"
|
||||
msgstr "Lagre"
|
||||
|
||||
@ -435,11 +387,11 @@ msgstr "Send"
|
||||
msgid "labels.sending"
|
||||
msgstr "Sender …"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:595, src/app/main/ui/dashboard/team.cljs:126, src/app/main/ui/dashboard/team.cljs:140, src/app/main/ui/settings/options.cljs:133, src/app/main/ui/settings/sidebar.cljs:91, src/app/main/ui/settings/sidebar.cljs:118
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:243, src/app/main/ui/dashboard/team.cljs:126, src/app/main/ui/dashboard/team.cljs:140, src/app/main/ui/settings/options.cljs:133, src/app/main/ui/settings/sidebar.cljs:91, src/app/main/ui/settings/sidebar.cljs:118
|
||||
msgid "labels.settings"
|
||||
msgstr "Innstillinger"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1159
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:382
|
||||
msgid "labels.shared-libraries"
|
||||
msgstr "Delte bibliotek"
|
||||
|
||||
@ -459,7 +411,7 @@ msgstr "Last opp egendefinerte skrifter"
|
||||
msgid "labels.uploading"
|
||||
msgstr "Laster opp …"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:862
|
||||
#: src/app/main/ui/comments.cljs:890
|
||||
msgid "labels.write-new-comment"
|
||||
msgstr "Skriv ny kommentar"
|
||||
|
||||
@ -479,19 +431,19 @@ msgstr "Bekreft ny e-postadresse"
|
||||
msgid "modals.delete-account.confirm"
|
||||
msgstr "Ja, slett kontoen min"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:913
|
||||
#: src/app/main/ui/comments.cljs:941
|
||||
msgid "modals.delete-comment-thread.accept"
|
||||
msgstr "Slett samtale"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:911
|
||||
#: src/app/main/ui/comments.cljs:939
|
||||
msgid "modals.delete-comment-thread.title"
|
||||
msgstr "Slett samtale"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:126
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:155
|
||||
msgid "modals.delete-file-confirm.accept"
|
||||
msgstr "Slett fil"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:120
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:149
|
||||
msgid "modals.delete-file-multi-confirm.accept"
|
||||
msgstr "Slett filer"
|
||||
|
||||
@ -499,7 +451,7 @@ msgstr "Slett filer"
|
||||
msgid "modals.delete-page.title"
|
||||
msgstr "Slett side"
|
||||
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:73
|
||||
#: src/app/main/ui/dashboard/project_menu.cljs:84
|
||||
msgid "modals.delete-project-confirm.accept"
|
||||
msgstr "Slett prosjekt"
|
||||
|
||||
@ -511,7 +463,7 @@ msgstr "Slett medlem"
|
||||
msgid "modals.delete-team-member-confirm.title"
|
||||
msgstr "Slett teammedlem"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:544, src/app/main/ui/dashboard/sidebar.cljs:566, src/app/main/ui/dashboard/team.cljs:540, src/app/main/ui/dashboard/team.cljs:562
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:168, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:193, src/app/main/ui/dashboard/team.cljs:540, src/app/main/ui/dashboard/team.cljs:562
|
||||
msgid "modals.leave-confirm.accept"
|
||||
msgstr "Forlat team"
|
||||
|
||||
@ -519,7 +471,7 @@ msgstr "Forlat team"
|
||||
msgid "modals.update-remote-component.cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/dashboard/team.cljs:1131
|
||||
#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/dashboard/team.cljs:1137
|
||||
msgid "notifications.invitation-email-sent"
|
||||
msgstr "Invitasjon sendt"
|
||||
|
||||
@ -531,7 +483,7 @@ msgstr "Profil lagret"
|
||||
msgid "title.settings.options"
|
||||
msgstr "Innstillinger - Penpot"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:115
|
||||
#: src/app/main/ui/settings/password.cljs:121
|
||||
msgid "title.settings.password"
|
||||
msgstr "Passord - Penpot"
|
||||
|
||||
@ -539,7 +491,7 @@ msgstr "Passord - Penpot"
|
||||
msgid "title.settings.profile"
|
||||
msgstr "Profil - Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1636
|
||||
#: src/app/main/ui/dashboard/team.cljs:1642
|
||||
msgid "title.team-settings"
|
||||
msgstr "Innstillinger - %s - Penpot"
|
||||
|
||||
@ -547,11 +499,11 @@ msgstr "Innstillinger - %s - Penpot"
|
||||
msgid "title.workspace"
|
||||
msgstr "%s - Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/grid.cljs:156, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/colorpicker/libraries.cljs:364, src/app/main/ui/workspace/colorpicker/libraries.cljs:381, src/app/main/ui/workspace/colorpicker/libraries.cljs:395, src/app/main/ui/workspace/sidebar/assets/colors.cljs:512, src/app/main/ui/workspace/sidebar/assets.cljs:164
|
||||
#: src/app/main/ui/dashboard/grid.cljs:156, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/colorpicker/libraries.cljs:364, src/app/main/ui/workspace/colorpicker/libraries.cljs:381, src/app/main/ui/workspace/colorpicker/libraries.cljs:395, src/app/main/ui/workspace/sidebar/assets/colors.cljs:512, src/app/main/ui/workspace/sidebar/assets.cljs:185
|
||||
msgid "workspace.assets.colors"
|
||||
msgstr "Farger"
|
||||
|
||||
#: src/app/main/ui/dashboard/grid.cljs:152, src/app/main/ui/dashboard/grid.cljs:167, src/app/main/ui/workspace/sidebar/assets/components.cljs:588, src/app/main/ui/workspace/sidebar/assets.cljs:161
|
||||
#: src/app/main/ui/dashboard/grid.cljs:152, src/app/main/ui/dashboard/grid.cljs:167, src/app/main/ui/workspace/sidebar/assets/components.cljs:588, src/app/main/ui/workspace/sidebar/assets.cljs:182
|
||||
msgid "workspace.assets.components"
|
||||
msgstr "Komponenter"
|
||||
|
||||
@ -559,20 +511,15 @@ msgstr "Komponenter"
|
||||
msgid "workspace.assets.create-group"
|
||||
msgstr "Opprett en gruppe"
|
||||
|
||||
#: src/app/main/ui/workspace/context_menu.cljs:828, src/app/main/ui/workspace/sidebar/assets/colors.cljs:265, src/app/main/ui/workspace/sidebar/assets/components.cljs:670, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:475, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:821
|
||||
#: src/app/main/ui/workspace/context_menu.cljs:828, src/app/main/ui/workspace/sidebar/assets/colors.cljs:265, src/app/main/ui/workspace/sidebar/assets/components.cljs:670, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:476, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:821
|
||||
msgid "workspace.assets.delete"
|
||||
msgstr "Slett"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:258, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:466
|
||||
#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:258, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:467
|
||||
msgid "workspace.assets.edit"
|
||||
msgstr "Rediger"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:386, src/app/main/ui/workspace/sidebar/assets.cljs:152
|
||||
#, unused
|
||||
msgid "workspace.assets.graphics"
|
||||
msgstr "Grafikk"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:269, src/app/main/ui/workspace/sidebar/assets/components.cljs:654, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:480
|
||||
#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:269, src/app/main/ui/workspace/sidebar/assets/components.cljs:654, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:481
|
||||
msgid "workspace.assets.group"
|
||||
msgstr "Gruppe"
|
||||
|
||||
@ -580,15 +527,10 @@ msgstr "Gruppe"
|
||||
msgid "workspace.assets.group-name"
|
||||
msgstr "Gruppenavn"
|
||||
|
||||
#: src/app/main/ui/workspace/context_menu.cljs:831, src/app/main/ui/workspace/sidebar/assets/colors.cljs:254, src/app/main/ui/workspace/sidebar/assets/components.cljs:645, src/app/main/ui/workspace/sidebar/assets/groups.cljs:66, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:461
|
||||
#: src/app/main/ui/workspace/context_menu.cljs:831, src/app/main/ui/workspace/sidebar/assets/colors.cljs:254, src/app/main/ui/workspace/sidebar/assets/components.cljs:645, src/app/main/ui/workspace/sidebar/assets/groups.cljs:66, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:462
|
||||
msgid "workspace.assets.rename"
|
||||
msgstr "Gi nytt navn"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
|
||||
#, unused
|
||||
msgid "workspace.assets.typography.font-id"
|
||||
msgstr "Skrift"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:855
|
||||
msgid "workspace.assets.typography.font-size"
|
||||
msgstr "Størrelse"
|
||||
@ -601,11 +543,6 @@ msgstr "Skriftstil"
|
||||
msgid "workspace.header.menu.show-rules"
|
||||
msgstr "Vis regler"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs
|
||||
#, unused
|
||||
msgid "workspace.libraries.add"
|
||||
msgstr "Legg til"
|
||||
|
||||
#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:97, src/app/main/ui/workspace/colorpicker/libraries.cljs:222, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:49
|
||||
msgid "workspace.libraries.colors.file-library"
|
||||
msgstr "Filbibliotek"
|
||||
@ -614,15 +551,15 @@ msgstr "Filbibliotek"
|
||||
msgid "workspace.libraries.colors.recent-colors"
|
||||
msgstr "Nylige farger"
|
||||
|
||||
#: src/app/main/ui/workspace/colorpicker.cljs:559
|
||||
#: src/app/main/ui/workspace/colorpicker.cljs:560
|
||||
msgid "workspace.libraries.colors.save-color"
|
||||
msgstr "Lagre fargestil"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:336
|
||||
#: src/app/main/ui/workspace/libraries.cljs:424, src/app/main/ui/workspace/libraries.cljs:806
|
||||
msgid "workspace.libraries.file-library"
|
||||
msgstr "Filbibliotek"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1035, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1041, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1290
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1022, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1028, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1277
|
||||
msgid "workspace.options.component"
|
||||
msgstr "Komponent"
|
||||
|
||||
@ -630,38 +567,18 @@ msgstr "Komponent"
|
||||
msgid "workspace.options.design"
|
||||
msgstr "Design"
|
||||
|
||||
#: src/app/main/ui/exports/assets.cljs:171, src/app/main/ui/exports/assets.cljs:273, src/app/main/ui/inspect/exports.cljs:217, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:274
|
||||
#: src/app/main/ui/exports/assets.cljs:171, src/app/main/ui/exports/assets.cljs:273, src/app/main/ui/inspect/exports.cljs:217, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:276
|
||||
msgid "workspace.options.exporting-object"
|
||||
msgstr "Eksporterer …"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
|
||||
#, unused
|
||||
msgid "workspace.options.grid.params.columns"
|
||||
msgstr "Kolonner"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:292
|
||||
msgid "workspace.options.grid.params.height"
|
||||
msgstr "Høyde"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
|
||||
#, unused
|
||||
msgid "workspace.options.grid.params.rows"
|
||||
msgstr "Rader"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:79
|
||||
msgid "workspace.options.grid.params.set-default"
|
||||
msgstr "Sett som forvalg"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
|
||||
#, unused
|
||||
msgid "workspace.options.grid.params.size"
|
||||
msgstr "Størrelse"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
|
||||
#, unused
|
||||
msgid "workspace.options.grid.params.type"
|
||||
msgstr "Type"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:73
|
||||
msgid "workspace.options.grid.params.use-default"
|
||||
msgstr "Bruk forvalg"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,93 +11,71 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 2026.6.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "Já tem uma conta?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:237
|
||||
#, unused
|
||||
msgid "auth.check-mail"
|
||||
msgstr "Verifique seu e-mail"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"Verifique seu e-mail e clique no link para verificar e começar a usar o "
|
||||
"Penpot."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "Confirme sua senha"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "Criar conta de demonstração"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "Quer só experimentar?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"Este é um serviço DEMONSTRAÇÃO, NÃO USE para trabalho real, os projetos "
|
||||
"serão apagados periodicamente."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "Esqueceu sua senha?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "Nome completo"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:288
|
||||
#: src/app/main/ui/auth/login.cljs:294
|
||||
msgid "auth.login-account-title"
|
||||
msgstr "Entrar na minha conta"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "Faça login aqui."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "Login"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:291
|
||||
#: src/app/main/ui/auth/login.cljs:297
|
||||
msgid "auth.login-tagline"
|
||||
msgstr ""
|
||||
"Penpot é a ferramenta de design de código aberto e gratuita para "
|
||||
"colaboração em design e código"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "GitLab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "Digite uma nova senha"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "Senha alterada com sucesso"
|
||||
|
||||
@ -111,19 +89,19 @@ msgstr ""
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "Link de recuperação de senha enviado para o seu e-mail."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "Entrou para a equipe com sucesso"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "Senha"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "Pelo menos 8 caracteres"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "Política de Privacidade"
|
||||
|
||||
@ -131,85 +109,56 @@ msgstr "Política de Privacidade"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "Recuperar senha"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "Enviaremos um e-mail com instruções"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "Esqueceu sua senha?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "Altere sua senha"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "Ainda não tem uma conta?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:368
|
||||
#: src/app/main/ui/auth/register.cljs:357
|
||||
msgid "auth.register-account-tagline"
|
||||
msgstr "Informe como deseja ser chamado no painel e nos e-mails."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:367
|
||||
#: src/app/main/ui/auth/register.cljs:356
|
||||
msgid "auth.register-account-title"
|
||||
msgstr "Seu nome"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "Criar uma conta"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:124
|
||||
#, unused
|
||||
msgid "auth.register-tagline"
|
||||
msgstr ""
|
||||
"Com uma conta gratuita do Penpot, você pode criar equipes ilimitadas e "
|
||||
"colaborar com outros designers e desenvolvedores em quantos projetos "
|
||||
"quiser. "
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "Criar uma conta"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "A solução de código aberto para design e prototipagem."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:50
|
||||
#: src/app/main/ui/auth/register.cljs:49
|
||||
#, markdown
|
||||
msgid "auth.terms-and-privacy-agreement"
|
||||
msgstr "Concordo com os [termos de serviço](%s) e a [política de privacidade](%s)."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "Termos de serviço"
|
||||
|
||||
#, unused
|
||||
msgid "auth.terms-privacy-agreement"
|
||||
msgstr ""
|
||||
"Ao criar uma nova conta, você concorda com nossos termos de serviço e "
|
||||
"política de privacidade."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "Enviamos um e-mail de verificação para"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:187
|
||||
#: src/app/main/ui/auth/login.cljs:185, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:182
|
||||
msgid "auth.work-email"
|
||||
msgstr "E-mail profissional"
|
||||
|
||||
#: src/app/main/ui/onboarding/questions.cljs
|
||||
#, unused
|
||||
msgid "branding-illustrations-marketing-pieces"
|
||||
msgstr "...branding, ilustrações, materiais de marketing, etc."
|
||||
|
||||
#: src/app/main/ui/comments.cljs:549
|
||||
#: src/app/main/ui/comments.cljs:577
|
||||
msgid "comments.mentions.not-found"
|
||||
msgstr "Nenhuma pessoa encontrada para @%s"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "Publicar"
|
||||
|
||||
@ -281,59 +230,29 @@ msgstr "Compartilhar protótipos"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "Selecionar tudo"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:344
|
||||
#: src/app/main/ui/workspace/libraries.cljs:432, src/app/main/ui/workspace/libraries.cljs:833
|
||||
msgid "common.unpublish"
|
||||
msgstr "Despublicar"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "Gestão da equipe"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:95
|
||||
#: src/app/main/ui/dashboard/projects.cljs:89
|
||||
msgid "dasboard.team-hero.text"
|
||||
msgstr ""
|
||||
"O Penpot foi feito para equipes. Convide membros para trabalharem juntos em "
|
||||
"projetos e arquivos"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:93
|
||||
#: src/app/main/ui/dashboard/projects.cljs:87
|
||||
msgid "dasboard.team-hero.title"
|
||||
msgstr "Monte sua equipe!"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.info"
|
||||
msgstr "Aprenda o básico no Penpot enquanto se diverte com este tutorial prático."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.start"
|
||||
msgstr "Começar o tutorial"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.title"
|
||||
msgstr "Tutorial prático"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.info"
|
||||
msgstr "Explore o Penpot e conheça suas principais funcionalidades."
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.start"
|
||||
msgstr "Começar o tour"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.walkthrough-hero.title"
|
||||
msgstr "Apresentação da interface"
|
||||
|
||||
#: src/app/main/ui/dashboard/placeholder.cljs:40
|
||||
msgid "dashboard.add-file"
|
||||
msgstr "Adicionar arquivo"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:323, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:324, src/app/main/ui/workspace/main_menu.cljs:700
|
||||
msgid "dashboard.add-shared"
|
||||
msgstr "Adicionar como Biblioteca Compartilhada"
|
||||
|
||||
@ -341,10 +260,10 @@ msgstr "Adicionar como Biblioteca Compartilhada"
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Alterar e-mail"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(copiar)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "Criar nova equipe"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,78 +11,61 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2026.6.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "ஏற்கனவே ஒரு கணக்கு உள்ளதா?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr ""
|
||||
"உங்கள் மின்னஞ்சலைச் சரிபார்த்து, இணைப்பைக் கிளிக் செய்து சரிபார்த்து, "
|
||||
"Penpot ஐப் பயன்படுத்தத் தொடங்குங்கள்."
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "கடவுச்சொல்லை உறுதிப்படுத்தவும்"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "டெமோ கணக்கை உருவாக்கவும்"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
|
||||
#, unused
|
||||
msgid "auth.create-demo-profile"
|
||||
msgstr "அதை முயற்சி செய்ய வேண்டுமா?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"இது ஒரு டெமோ சேவை, உண்மையான வேலைக்கு பயன்படுத்த வேண்டாம், திட்டங்கள் "
|
||||
"அவ்வப்போது அழிக்கப்படும்."
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "முழு பெயர்"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "இங்கே உள்நுழைக"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "உள்நுழை"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "கிட்லேப்"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "கூகுள்"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "ஓப்பன் ஐடி"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "புதிய கடவுச்சொல்லை உள்ளிடவும்"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டது"
|
||||
|
||||
@ -96,19 +79,19 @@ msgstr ""
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "கடவுச்சொல் மீட்பு இணைப்பு உங்கள் இன்பாக்ஸிற்கு அனுப்பப்பட்டது."
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "அணியில் வெற்றிகரமாக இணைந்தார்"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "கடவுச்சொல்"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "குறைந்தது 8 எழுத்துகள்"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "தனியுரிமைக் கொள்கை"
|
||||
|
||||
@ -116,45 +99,35 @@ msgstr "தனியுரிமைக் கொள்கை"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "கடவுச்சொல்லை மீட்டெடுக்கவும்"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:89, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
#: src/app/main/ui/auth/recovery.cljs:95, src/app/main/ui/auth/recovery_request.cljs:94
|
||||
msgid "auth.recovery-request-subtitle"
|
||||
msgstr "வழிமுறைகளுடன் கூடிய மின்னஞ்சலை உங்களுக்கு அனுப்புவோம்"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "உங்கள் கடவுச்சொல்லை மாற்றுக"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "இன்னும் கணக்கு இல்லையா?"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "ஒரு கணக்கை உருவாக்கவும்"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "ஒரு கணக்கை உருவாக்கவும்"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "வடிவமைப்பு மற்றும் முன்மாதிரிக்கான திறந்த மூல தீர்வு."
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "சேவை விதிமுறைகள்"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "சரிபார்ப்பு மின்னஞ்சலை அனுப்பியுள்ளோம் இந்த முகவரிக்கு"
|
||||
|
||||
#: src/app/main/ui/workspace/libraries.cljs:349
|
||||
#: src/app/main/ui/workspace/libraries.cljs:437, src/app/main/ui/workspace/libraries.cljs:838
|
||||
msgid "common.publish"
|
||||
msgstr "வெளியிடுங்கள்"
|
||||
|
||||
@ -210,6 +183,6 @@ msgstr "இணைப்பு உள்ள எவருக்கும் அண
|
||||
msgid "common.share-link.permissions-pages"
|
||||
msgstr "பக்கங்கள் பகிரப்பட்டன"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:41
|
||||
#: src/app/main/ui/auth/recovery.cljs:47
|
||||
msgid "errors.invalid-recovery-token"
|
||||
msgstr "மீட்பு டோக்கன் செல்லுபடியாகாது."
|
||||
|
||||
@ -11,84 +11,69 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 2026.10.dev0\n"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:232, src/app/main/ui/static.cljs:182, src/app/main/ui/viewer/login.cljs:109
|
||||
#: 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 "มีบัญชีแล้ว?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:237
|
||||
#, unused
|
||||
msgid "auth.check-mail"
|
||||
msgstr "ตรวจสอบอีเมลของคุณ"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#, unused
|
||||
msgid "auth.check-your-email"
|
||||
msgstr "ตรวจสอบอีเมลของคุณและคลิกลิงก์เพื่อยืนยันและเริ่มใช้งาน Penpot"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:77
|
||||
#: src/app/main/ui/auth/recovery.cljs:83
|
||||
msgid "auth.confirm-password"
|
||||
msgstr "ยืนยันรหัสผ่าน"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:244
|
||||
#: src/app/main/ui/auth/register.cljs:239
|
||||
msgid "auth.create-demo-account"
|
||||
msgstr "สร้างบัญชีสาธิตการใช้งาน"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:40
|
||||
#: src/app/main/ui/auth/login.cljs:41
|
||||
msgid "auth.demo-warning"
|
||||
msgstr ""
|
||||
"บริการนี้มีไว้สำหรับสาธิตการใช้งาน ห้ามใช้สำหรับชิ้นงานจริง "
|
||||
"เนื่องจากข้อมูลจะถูกลบเป็นระยะ ๆ"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:197, src/app/main/ui/viewer/login.cljs:95
|
||||
#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/viewer/login.cljs:105
|
||||
msgid "auth.forgot-password"
|
||||
msgstr "ลืมรหัสผ่าน?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:180, src/app/main/ui/auth/register.cljs:346
|
||||
#: src/app/main/ui/auth/register.cljs:175, src/app/main/ui/auth/register.cljs:335
|
||||
msgid "auth.fullname"
|
||||
msgstr "ชื่อเต็ม"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:288
|
||||
#: src/app/main/ui/auth/login.cljs:294
|
||||
msgid "auth.login-account-title"
|
||||
msgstr "ลงชื่อเข้าใช้บัญชีของฉัน"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:236, src/app/main/ui/static.cljs:185, src/app/main/ui/viewer/login.cljs:112
|
||||
#: 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 "ลงชื่อเข้าใช้ที่นี่"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:195
|
||||
#, unused
|
||||
msgid "auth.login-submit"
|
||||
msgstr "ลงชื่อเข้าใช้"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:291
|
||||
#: src/app/main/ui/auth/login.cljs:297
|
||||
msgid "auth.login-tagline"
|
||||
msgstr "Penpot เป็นเครื่องมือออกแบบที่ฟรีและโอเพนซอร์สสำหรับการดีไซน์และโค้ดร่วมกัน"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
msgid "auth.login-with-github-submit"
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:254
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
msgid "auth.login-with-gitlab-submit"
|
||||
msgstr "GitLab"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:242
|
||||
#: src/app/main/ui/auth/login.cljs:248
|
||||
msgid "auth.login-with-google-submit"
|
||||
msgstr "Google"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:207
|
||||
#: src/app/main/ui/auth/login.cljs:213
|
||||
msgid "auth.login-with-ldap-submit"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:260
|
||||
#: src/app/main/ui/auth/login.cljs:266
|
||||
msgid "auth.login-with-oidc-submit"
|
||||
msgstr "OpenID"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:70
|
||||
#: src/app/main/ui/auth/recovery.cljs:76
|
||||
msgid "auth.new-password"
|
||||
msgstr "พิมพ์รหัสผ่านใหม่"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:46
|
||||
#: src/app/main/ui/auth/recovery.cljs:52
|
||||
msgid "auth.notifications.password-changed-successfully"
|
||||
msgstr "เปลี่ยนรหัสผ่านแล้ว"
|
||||
|
||||
@ -100,19 +85,19 @@ msgstr "โปรไฟล์นี้ยังไม่ได้รับกา
|
||||
msgid "auth.notifications.recovery-token-sent"
|
||||
msgstr "ลิงก์กู้คืนรหัสผ่านถูกส่งไปยังกล่องข้อความของคุณแล้ว"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:65
|
||||
#: src/app/main/ui/auth/verify_token.cljs:85
|
||||
msgid "auth.notifications.team-invitation-accepted"
|
||||
msgstr "เข้าร่วมทีมสำเร็จ"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:187, src/app/main/ui/auth/register.cljs:194
|
||||
#: src/app/main/ui/auth/login.cljs:193, src/app/main/ui/auth/register.cljs:189
|
||||
msgid "auth.password"
|
||||
msgstr "รหัสผ่าน"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:193
|
||||
#: src/app/main/ui/auth/register.cljs:188
|
||||
msgid "auth.password-length-hint"
|
||||
msgstr "อย่างน้อย 8 ตัวอักษร"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:277
|
||||
#: src/app/main/ui/auth/register.cljs:272
|
||||
msgid "auth.privacy-policy"
|
||||
msgstr "นโยบายความเป็นส่วนตัว"
|
||||
|
||||
@ -120,66 +105,44 @@ msgstr "นโยบายความเป็นส่วนตัว"
|
||||
msgid "auth.recovery-request-submit"
|
||||
msgstr "กู้คืนรหัสผ่าน"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:88, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
#: src/app/main/ui/auth/recovery.cljs:94, src/app/main/ui/auth/recovery_request.cljs:93
|
||||
msgid "auth.recovery-request-title"
|
||||
msgstr "ลืมรหัสผ่าน?"
|
||||
|
||||
#: src/app/main/ui/auth/recovery.cljs:80
|
||||
#: src/app/main/ui/auth/recovery.cljs:86
|
||||
msgid "auth.recovery-submit"
|
||||
msgstr "เปลี่ยนรหัสผ่านของคุณ"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:304, src/app/main/ui/static.cljs:168, src/app/main/ui/viewer/login.cljs:99
|
||||
#: 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 "ยังไม่มีบัญชี?"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:368
|
||||
#: src/app/main/ui/auth/register.cljs:357
|
||||
msgid "auth.register-account-tagline"
|
||||
msgstr "เราควรเรียกคุณในแดชบอร์ดและอีเมลว่าอะไรดี"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:367
|
||||
#: src/app/main/ui/auth/register.cljs:356
|
||||
msgid "auth.register-account-title"
|
||||
msgstr "ชื่อของคุณ"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:308, src/app/main/ui/auth/register.cljs:204, src/app/main/ui/auth/register.cljs:356, src/app/main/ui/static.cljs:172, src/app/main/ui/viewer/login.cljs:102
|
||||
#: 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 "สร้างบัญชี"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:124
|
||||
#, unused
|
||||
msgid "auth.register-tagline"
|
||||
msgstr ""
|
||||
"ด้วยบัญชี Penpot ฟรี "
|
||||
"คุณสามารถสร้างทีมได้อย่างไม่จำกัดและทำงานร่วมกับดีไซเนอร์และนักพัฒนาคนอื่น "
|
||||
"ๆ กี่โปรเจกต์ก็ได้ "
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:223
|
||||
#: src/app/main/ui/auth/register.cljs:218
|
||||
msgid "auth.register-title"
|
||||
msgstr "สร้างบัญชี"
|
||||
|
||||
#: src/app/main/ui/auth.cljs
|
||||
#, unused
|
||||
msgid "auth.sidebar-tagline"
|
||||
msgstr "โซลูชันโอเพนซอร์สสำหรับการออกแบบและโปรโตไทป์"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:50
|
||||
#: src/app/main/ui/auth/register.cljs:49
|
||||
#, markdown
|
||||
msgid "auth.terms-and-privacy-agreement"
|
||||
msgstr "ฉันยอมรับ [ข้อกำหนดการให้บริการ](%s)และ[นโยบายความเป็นส่วนตัว](%s)"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:269, src/app/main/ui/dashboard/sidebar.cljs:1319, src/app/main/ui/workspace/main_menu.cljs:210
|
||||
#: 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 "เงื่อนไขการให้บริการ"
|
||||
|
||||
#, unused
|
||||
msgid "auth.terms-privacy-agreement"
|
||||
msgstr "เมื่อคุณสร้างบัญชี คุณยอมรับข้อกำหนดการให้บริการและนโยบายความเป็นส่วนตัว"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:238
|
||||
#, unused
|
||||
msgid "auth.verification-email-sent"
|
||||
msgstr "เราได้ส่งอีเมลยืนยันให้กับ"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:187
|
||||
#: src/app/main/ui/auth/login.cljs:185, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:182
|
||||
msgid "auth.work-email"
|
||||
msgstr "อีเมลทำงาน"
|
||||
|
||||
@ -248,34 +211,29 @@ msgstr "แชร์โปรโตไทป์"
|
||||
msgid "common.share-link.view-all"
|
||||
msgstr "เลือกทั้งหมด"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:96
|
||||
#: src/app/main/ui/dashboard/projects.cljs:90
|
||||
msgid "dasboard.team-hero.management"
|
||||
msgstr "การจัดการทีม"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:95
|
||||
#: src/app/main/ui/dashboard/projects.cljs:89
|
||||
msgid "dasboard.team-hero.text"
|
||||
msgstr ""
|
||||
"Penpot เป็นเครื่องมือสำหรับการทำงานเป็นทีม "
|
||||
"เชิญชวนสมาชิกมาทำงานด้วยกันผ่านโปรเจกต์และไฟล์ต่าง ๆ เลย"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:93
|
||||
#: src/app/main/ui/dashboard/projects.cljs:87
|
||||
msgid "dasboard.team-hero.title"
|
||||
msgstr "รวบรวมทีมเลย!"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs
|
||||
#, unused
|
||||
msgid "dasboard.tutorial-hero.info"
|
||||
msgstr "เรียนรู้การใช้งาน Penpot เบื้องต้นด้วยการลงมือทำจริง"
|
||||
|
||||
#: src/app/main/ui/settings/profile.cljs:75
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "เปลี่ยนอีเมล"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:331, src/app/main/data/dashboard.cljs:566, src/app/main/data/workspace/pages.cljs:200
|
||||
#: src/app/main/data/dashboard.cljs:300, src/app/main/data/dashboard.cljs:535, src/app/main/data/workspace/pages.cljs:201
|
||||
msgid "dashboard.copy-suffix"
|
||||
msgstr "(คัดลอก)"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:477
|
||||
#: src/app/main/ui/dashboard/organization_team_switch.cljs:280
|
||||
msgid "dashboard.create-new-team"
|
||||
msgstr "สร้างทีมใหม่"
|
||||
|
||||
@ -283,7 +241,7 @@ msgstr "สร้างทีมใหม่"
|
||||
msgid "dashboard.default-team-name"
|
||||
msgstr "Penpot ของคุณ"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:626, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:274, src/app/main/ui/dashboard/team_form.cljs:153
|
||||
msgid "dashboard.delete-team"
|
||||
msgstr "ลบทีม"
|
||||
|
||||
@ -291,24 +249,19 @@ msgstr "ลบทีม"
|
||||
msgid "dashboard.download-binary-file"
|
||||
msgstr "ดาวน์โหลดไฟล์ Penpot (.penpot)"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:321, src/app/main/ui/workspace/main_menu.cljs:712
|
||||
#, unused
|
||||
msgid "dashboard.download-standard-file"
|
||||
msgstr "ดาวน์โหลดไฟล์มาตรฐาน (.svg + .json)"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:212, src/app/main/ui/dashboard/projects.cljs:303
|
||||
#: src/app/main/ui/dashboard/files.cljs:233, src/app/main/ui/dashboard/projects.cljs:309
|
||||
msgid "dashboard.empty-placeholder-drafts-subtitle"
|
||||
msgstr "เมื่อสมาชิกโปรเจกต์สร้างแบบร่าง จะปรากฏที่นี่"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:207, src/app/main/ui/dashboard/projects.cljs:298
|
||||
#: src/app/main/ui/dashboard/files.cljs:228, src/app/main/ui/dashboard/projects.cljs:304
|
||||
msgid "dashboard.empty-placeholder-drafts-title"
|
||||
msgstr "ยังไม่มีแบบร่าง"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:180, src/app/main/ui/dashboard/files.cljs:213, src/app/main/ui/dashboard/projects.cljs:304
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:180, src/app/main/ui/dashboard/files.cljs:234, src/app/main/ui/dashboard/projects.cljs:310
|
||||
msgid "dashboard.empty-placeholder-files-subtitle"
|
||||
msgstr "เมื่อสมาชิกของโปรเจกต์สร้างไฟล์ จะแสดงผลที่นี่"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:177, src/app/main/ui/dashboard/files.cljs:208, src/app/main/ui/dashboard/projects.cljs:299
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:177, src/app/main/ui/dashboard/files.cljs:229, src/app/main/ui/dashboard/projects.cljs:305
|
||||
msgid "dashboard.empty-placeholder-files-title"
|
||||
msgstr "ยังไม่มีไฟล์"
|
||||
|
||||
@ -320,14 +273,6 @@ msgstr ""
|
||||
"ลองแชร์ไฟล์ของคุณหรือเพิ่มจาก[ไลบรารีและเทมเพลต](https://penpot.app/"
|
||||
"libraries-templates)ของเรา"
|
||||
|
||||
#: src/app/main/ui/dashboard/placeholder.cljs
|
||||
#, markdown, unused
|
||||
msgid "dashboard.empty-placeholder-libraries-subtitle"
|
||||
msgstr ""
|
||||
"ไลบรารีที่เพิ่มให้กับโปรเจกต์จะปรากฏที่นี่ "
|
||||
"ลองแชร์ไฟล์ของคุณหรือเพิ่มจาก[ไลบรารีและเทมเพลต](https://penpot.app/"
|
||||
"libraries-templates)ของเรา"
|
||||
|
||||
#: src/app/main/ui/dashboard/placeholder.cljs:113
|
||||
msgid "dashboard.empty-placeholder-libraries-subtitle-viewer-role"
|
||||
msgstr "ไลบรารีที่เพิ่มลงในโปรเจกต์จะปรากฏที่นี่"
|
||||
@ -336,7 +281,7 @@ msgstr "ไลบรารีที่เพิ่มลงในโปรเจ
|
||||
msgid "dashboard.empty-placeholder-libraries-title"
|
||||
msgstr "ยังไม่มีไลบรารี"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:281
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:279
|
||||
msgid "dashboard.export-binary-multi"
|
||||
msgstr "ดาวน์โหลด %s ไฟล์ Penpot (.penpot)"
|
||||
|
||||
@ -348,10 +293,6 @@ msgstr "ส่งออกบอร์ดเป็น PDF"
|
||||
msgid "dashboard.export-frames.title"
|
||||
msgstr "ส่งออกเป็น PDF"
|
||||
|
||||
#, unused
|
||||
msgid "dashboard.export-multi"
|
||||
msgstr "ส่งออก %s ไฟล์ Penpot"
|
||||
|
||||
#: src/app/main/ui/workspace/main_menu.cljs:728
|
||||
msgid "dashboard.export-shapes"
|
||||
msgstr "ส่งออก"
|
||||
@ -360,11 +301,6 @@ msgstr "ส่งออก"
|
||||
msgid "dashboard.export-shapes.title"
|
||||
msgstr "ส่งออกส่วนที่เลือก"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:262
|
||||
#, unused
|
||||
msgid "dashboard.export-standard-multi"
|
||||
msgstr "ดาวน์โหลด %s ไฟล์มาตรฐาน (.svg + .json)"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:608
|
||||
msgid "dashboard.fonts.deleted-placeholder"
|
||||
msgstr "ฟอนต์ที่หายไป"
|
||||
@ -399,25 +335,20 @@ msgstr ""
|
||||
msgid "dashboard.fonts.upload-all"
|
||||
msgstr "อัปโหลดทั้งหมด"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:941, src/app/main/ui/dashboard/project_menu.cljs:109
|
||||
#: src/app/main/ui/dashboard/import.cljs:995, src/app/main/ui/dashboard/project_menu.cljs:110
|
||||
msgid "dashboard.import"
|
||||
msgstr "นำเข้าไฟล์ Penpot"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:342, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
#: src/app/main/ui/dashboard/import.cljs:343, src/app/worker/import.cljs:144, src/app/worker/import.cljs:147
|
||||
msgid "dashboard.import.analyze-error"
|
||||
msgstr "ไม่สามารถนำเข้าไฟล์นี้ได้"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:292
|
||||
#, unused
|
||||
msgid "dashboard.import.import-error"
|
||||
msgstr "พบปัญหาในการนำเข้าไฟล์ ไฟล์นี้จึงไม่ถูกนำเข้า"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:562
|
||||
#: src/app/main/ui/dashboard/import.cljs:593
|
||||
msgid "dashboard.import.import-message"
|
||||
msgid_plural "dashboard.import.import-message"
|
||||
msgstr[0] "นำเข้าสำเร็จแล้ว %s ไฟล์"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:556
|
||||
#: src/app/main/ui/dashboard/import.cljs:587
|
||||
msgid "dashboard.import.import-warning"
|
||||
msgstr "บางไฟล์มีวัตถุที่ไม่ถูกต้อง ซึ่งถูกนำออกให้แล้ว"
|
||||
|
||||
@ -445,7 +376,7 @@ msgstr "กำลังอัปโหลดข้อมูลไปยังเ
|
||||
msgid "dashboard.import.progress.upload-media"
|
||||
msgstr "กำลังอัปโหลดไฟล์: %s"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:608, src/app/main/ui/dashboard/sidebar.cljs:615, src/app/main/ui/dashboard/sidebar.cljs:620, src/app/main/ui/dashboard/team.cljs:464
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:257, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:263, src/app/main/ui/dashboard/organization_team_switch_menus.cljs:268, src/app/main/ui/dashboard/team.cljs:464
|
||||
msgid "dashboard.leave-team"
|
||||
msgstr "ออกจากทีม"
|
||||
|
||||
@ -453,7 +384,7 @@ msgstr "ออกจากทีม"
|
||||
msgid "dashboard.libraries-and-templates"
|
||||
msgstr "ไลบรารีและเทมเพลต"
|
||||
|
||||
#: src/app/main/ui/dashboard/import.cljs:774, src/app/main/ui/workspace/libraries.cljs:146
|
||||
#: src/app/main/ui/dashboard/import.cljs:816, src/app/main/ui/workspace/libraries.cljs:229
|
||||
msgid "dashboard.libraries-and-templates.import-error"
|
||||
msgstr "พบปัญหาในการนำเข้าเทมเพลต เทมเพลตนี้จึงไม่ถูกนำเข้า"
|
||||
|
||||
@ -469,51 +400,51 @@ msgstr "กำลังโหลดไฟล์ของคุณ…"
|
||||
msgid "dashboard.loading-fonts"
|
||||
msgstr "กำลังโหลดฟอนต์ของคุณ…"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:313, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:308, src/app/main/ui/dashboard/project_menu.cljs:101
|
||||
msgid "dashboard.move-to"
|
||||
msgstr "ย้ายไปยัง"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:277
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:272
|
||||
msgid "dashboard.move-to-multi"
|
||||
msgstr "ย้าน %s ไฟล์ไปยัง"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:249
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:73
|
||||
msgid "dashboard.move-to-other-team"
|
||||
msgstr "ย้ายไปยังทีมอื่น"
|
||||
|
||||
#: src/app/main/ui/dashboard/files.cljs:111, src/app/main/ui/dashboard/projects.cljs:259, src/app/main/ui/dashboard/projects.cljs:260
|
||||
#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:259
|
||||
msgid "dashboard.new-file"
|
||||
msgstr "+ สร้างไฟล์ใหม่"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:537, src/app/main/data/dashboard.cljs:649
|
||||
#: src/app/main/data/dashboard.cljs:506, src/app/main/data/dashboard.cljs:618
|
||||
msgid "dashboard.new-file-prefix"
|
||||
msgstr "สร้างไฟล์ใหม่"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:67
|
||||
#: src/app/main/ui/dashboard/projects.cljs:59
|
||||
msgid "dashboard.new-project"
|
||||
msgstr "+ สร้างโปรเจกต์ใหม่"
|
||||
|
||||
#: src/app/main/data/dashboard.cljs:290, src/app/main/data/dashboard.cljs:652
|
||||
#: src/app/main/data/dashboard.cljs:259, src/app/main/data/dashboard.cljs:621
|
||||
msgid "dashboard.new-project-prefix"
|
||||
msgstr "สร้างโปรเจกต์ใหม่"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:37
|
||||
#: src/app/main/ui/auth/verify_token.cljs:38
|
||||
msgid "dashboard.notifications.email-changed-successfully"
|
||||
msgstr "อัปเดตอีเมลสำเร็จแล้ว"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:46
|
||||
#: src/app/main/ui/settings/password.cljs:52
|
||||
msgid "dashboard.notifications.password-saved"
|
||||
msgstr "บันทึกรหัสผ่านแล้ว"
|
||||
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:296
|
||||
#: src/app/main/ui/dashboard/file_menu.cljs:294
|
||||
msgid "dashboard.open-in-new-tab"
|
||||
msgstr "เปิดไฟล์ในแท็บใหม่"
|
||||
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:124, src/app/main/ui/dashboard/grid.cljs:428, src/app/main/ui/dashboard/projects.cljs:268, src/app/main/ui/dashboard/projects.cljs:269
|
||||
#: src/app/main/ui/dashboard/deleted.cljs:161, src/app/main/ui/dashboard/deleted.cljs:162, src/app/main/ui/dashboard/files.cljs:143, src/app/main/ui/dashboard/grid.cljs:427, src/app/main/ui/dashboard/grid.cljs:438, src/app/main/ui/dashboard/grid.cljs:480, src/app/main/ui/dashboard/projects.cljs:217, src/app/main/ui/dashboard/projects.cljs:274, src/app/main/ui/dashboard/sidebar.cljs:156
|
||||
msgid "dashboard.options"
|
||||
msgstr "ตัวเลือก"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:120
|
||||
#: src/app/main/ui/settings/password.cljs:112, src/app/main/ui/settings/password.cljs:126
|
||||
msgid "dashboard.password-change"
|
||||
msgstr "เปลี่ยนรหัสผ่าน"
|
||||
|
||||
@ -533,7 +464,7 @@ msgstr "คุณเป็นเจ้าของในทีมนี้แล
|
||||
msgid "dashboard.save-settings"
|
||||
msgstr "บันทึกการตั้งค่า"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:282, src/app/main/ui/dashboard/sidebar.cljs:283, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:228, src/app/main/ui/dashboard/sidebar.cljs:229, src/app/main/ui/ds/controls/shared/searchable_options_dropdown.cljs:140
|
||||
msgid "dashboard.search-placeholder"
|
||||
msgstr "ค้นหา…"
|
||||
|
||||
@ -545,19 +476,19 @@ msgstr "เลือกภาษาของ UI"
|
||||
msgid "dashboard.select-ui-theme"
|
||||
msgstr "เลือกธีม"
|
||||
|
||||
#: src/app/main/ui/dashboard/projects.cljs:292
|
||||
#: src/app/main/ui/dashboard/projects.cljs:288
|
||||
msgid "dashboard.show-all-files"
|
||||
msgstr "แสดงไฟล์ทั้งหมด"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1663
|
||||
#: src/app/main/ui/dashboard/team.cljs:1669
|
||||
msgid "dashboard.team-info"
|
||||
msgstr "ข้อมูลของทีม"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1708
|
||||
#: src/app/main/ui/dashboard/team.cljs:1714
|
||||
msgid "dashboard.team-members"
|
||||
msgstr "สมาชิกของทีม"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1723
|
||||
#: src/app/main/ui/dashboard/team.cljs:1729
|
||||
msgid "dashboard.team-projects"
|
||||
msgstr "โปรเจกต์ของทีม"
|
||||
|
||||
@ -573,22 +504,18 @@ msgstr "ผลการค้นหา"
|
||||
msgid "dashboard.update-settings"
|
||||
msgstr "อัปเดตการตั้งค่า"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1389
|
||||
#: src/app/main/ui/dashboard/team.cljs:1395
|
||||
msgid "dashboard.webhooks.content-type"
|
||||
msgstr "ประเภทเนื้อหา"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1421
|
||||
#: src/app/main/ui/dashboard/team.cljs:1427
|
||||
msgid "dashboard.webhooks.create"
|
||||
msgstr "สร้าง Webhook"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:1324
|
||||
#: src/app/main/ui/dashboard/team.cljs:1330
|
||||
msgid "dashboard.webhooks.create.success"
|
||||
msgstr "สร้าง Webhook แล้ว"
|
||||
|
||||
#, unused
|
||||
msgid "dashboard.webhooks.update.success"
|
||||
msgstr "อัปเดต Webhook แล้ว"
|
||||
|
||||
#: src/app/main/ui/settings.cljs:36
|
||||
msgid "dashboard.your-account-title"
|
||||
msgstr "บัญชีของคุณ"
|
||||
@ -605,19 +532,19 @@ msgstr "ชื่อของคุณ"
|
||||
msgid "ds.confirm-allow"
|
||||
msgstr "อนุญาต"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:691, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
#: src/app/main/ui/comments.cljs:719, src/app/main/ui/confirm.cljs:43, src/app/main/ui/settings/subscription.cljs:324, src/app/main/ui/settings/subscription.cljs:357, src/app/main/ui/settings/subscription.cljs:839, src/app/main/ui/settings/subscription.cljs:888, src/app/main/ui/settings/subscription.cljs:898, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436
|
||||
msgid "ds.confirm-cancel"
|
||||
msgstr "ยกเลิก"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs:107, src/app/main/ui/auth/verify_token.cljs:128, src/app/main/ui/settings/change_email.cljs:29
|
||||
#: src/app/main/ui/auth/register.cljs:111, src/app/main/ui/auth/verify_token.cljs:148, src/app/main/ui/settings/change_email.cljs:29
|
||||
msgid "errors.email-already-exists"
|
||||
msgstr "อีเมลถูกใช้ไปแล้ว"
|
||||
|
||||
#: src/app/main/data/auth.cljs:352, src/app/main/ui/auth/register.cljs:94, src/app/main/ui/dashboard/team.cljs:243
|
||||
#: src/app/main/data/auth.cljs:346, src/app/main/ui/auth/register.cljs:99, src/app/main/ui/dashboard/team.cljs:243
|
||||
msgid "errors.email-domain-not-allowed"
|
||||
msgstr "โดเมนนี้ไม่ได้รับอนุญาต"
|
||||
|
||||
#, unused
|
||||
#: ../common/src/app/common/schema.cljc:1068
|
||||
msgid "errors.field-min-length"
|
||||
msgstr "ต้องมีอย่างน้อย 1 ตัวอักษร"
|
||||
|
||||
@ -625,17 +552,15 @@ msgstr "ต้องมีอย่างน้อย 1 ตัวอักษร
|
||||
msgid "errors.invalid-color"
|
||||
msgstr "สีไม่ถูกต้อง"
|
||||
|
||||
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
|
||||
#, unused
|
||||
#: src/app/main/ui/auth/login.cljs:67, ../common/src/app/common/schema.cljc:497
|
||||
msgid "errors.invalid-email"
|
||||
msgstr "กรุณาใส่อีเมลที่ถูกต้อง"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs
|
||||
#, unused
|
||||
#: ../common/src/app/common/schema.cljc:1092
|
||||
msgid "errors.password-too-short"
|
||||
msgstr "รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร"
|
||||
|
||||
#: src/app/main/ui/auth/login.cljs:103, src/app/main/ui/auth/login.cljs:107
|
||||
#: src/app/main/ui/auth/login.cljs:104, src/app/main/ui/auth/login.cljs:108
|
||||
msgid "errors.wrong-credentials"
|
||||
msgstr "อีเมลหรือรหัสผ่านไม่ถูกต้อง"
|
||||
|
||||
@ -647,25 +572,10 @@ msgstr "รหัสผ่านเดิมไม่ถูกต้อง"
|
||||
msgid "feedback.discourse-title"
|
||||
msgstr "ชุมชน Penpot"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.height"
|
||||
msgstr "ความสูง"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/layout.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.layout.left"
|
||||
msgstr "ซ้าย"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/shadow.cljs:66
|
||||
msgid "inspect.attributes.shadow"
|
||||
msgstr "เงา"
|
||||
|
||||
#: src/app/main/ui/inspect/attributes/stroke.cljs
|
||||
#, unused
|
||||
msgid "inspect.attributes.stroke.width"
|
||||
msgstr "ความกว้าง"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:612, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:618
|
||||
msgid "inspect.attributes.typography.font-size"
|
||||
msgstr "ขนาดฟอนต์"
|
||||
@ -686,11 +596,11 @@ msgstr "SVG"
|
||||
msgid "labels.code"
|
||||
msgstr "โคด"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1256, src/app/main/ui/workspace/main_menu.cljs:165
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:479, src/app/main/ui/workspace/main_menu.cljs:165
|
||||
msgid "labels.community"
|
||||
msgstr "ชุมชน"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:103
|
||||
#: src/app/main/ui/settings/password.cljs:109
|
||||
msgid "labels.confirm-password"
|
||||
msgstr "ยืนยันรหัสผ่าน"
|
||||
|
||||
@ -702,23 +612,19 @@ msgstr "คัดลอกลิงก์"
|
||||
msgid "labels.create-team"
|
||||
msgstr "สร้างทีมใหม่"
|
||||
|
||||
#, unused
|
||||
msgid "labels.custom-fonts"
|
||||
msgstr "ฟอนต์ที่กำหนดเอง"
|
||||
|
||||
#: src/app/main/ui/settings/sidebar.cljs:86
|
||||
msgid "labels.dashboard"
|
||||
msgstr "แดชบอร์ด"
|
||||
|
||||
#: src/app/main/ui/comments.cljs:1015, src/app/main/ui/dashboard/fonts.cljs:280, src/app/main/ui/dashboard/import.cljs:327, src/app/main/ui/dashboard/team.cljs:1437, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:218, src/app/main/ui/workspace/tokens/themes.cljs:52
|
||||
#: src/app/main/ui/comments.cljs:1043, src/app/main/ui/dashboard/fonts.cljs:280, src/app/main/ui/dashboard/import.cljs:326, src/app/main/ui/dashboard/team.cljs:1443, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:217, src/app/main/ui/workspace/tokens/themes.cljs:52
|
||||
msgid "labels.edit"
|
||||
msgstr "แก้ไข"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:430, src/app/main/ui/dashboard/team.cljs:677, src/app/main/ui/dashboard/team.cljs:710, src/app/main/ui/onboarding/team_choice.cljs:71
|
||||
#: src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:405, src/app/main/ui/dashboard/team.cljs:430, src/app/main/ui/dashboard/team.cljs:677, src/app/main/ui/dashboard/team.cljs:710, src/app/main/ui/dashboard/team.cljs:890, src/app/main/ui/onboarding/team_choice.cljs:71
|
||||
msgid "labels.editor"
|
||||
msgstr "เอดิเตอร์"
|
||||
|
||||
#: src/app/main/ui/exports/assets.cljs:172, src/app/main/ui/settings/shortcuts.cljs:548, src/app/main/ui/workspace/tokens/sidebar.cljs:134
|
||||
#: src/app/main/ui/exports/assets.cljs:172, src/app/main/ui/settings/shortcuts.cljs:548, src/app/main/ui/workspace/tokens/sidebar.cljs:145
|
||||
msgid "labels.export"
|
||||
msgstr "ส่งออก"
|
||||
|
||||
@ -726,7 +632,7 @@ msgstr "ส่งออก"
|
||||
msgid "labels.figma"
|
||||
msgstr "Figma"
|
||||
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:1152
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:74, src/app/main/ui/dashboard/sidebar.cljs:375
|
||||
msgid "labels.fonts"
|
||||
msgstr "ฟอนต์"
|
||||
|
||||
@ -742,11 +648,11 @@ msgstr "ภาษา"
|
||||
msgid "labels.libraries-and-templates"
|
||||
msgstr "ไลบรารีและเทมเพลต"
|
||||
|
||||
#: src/app/main/ui/auth/verify_token.cljs:144, src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:142, src/app/main/ui/dashboard/import.cljs:289, src/app/main/ui/dashboard/placeholder.cljs:139, src/app/main/ui/ds/product/loader.cljs:85, src/app/main/ui/exports/files.cljs:69, src/app/main/ui/nitrate/entry.cljs:26, src/app/main/ui/static.cljs:652, src/app/main/ui/viewer.cljs:641, src/app/main/ui/workspace/sidebar/assets/file_library.cljs:247, src/app/main/ui/workspace.cljs:132
|
||||
#: src/app/main/ui/auth/verify_token.cljs:164, src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:142, src/app/main/ui/dashboard/import.cljs:289, src/app/main/ui/dashboard/placeholder.cljs:139, src/app/main/ui/ds/product/loader.cljs:85, src/app/main/ui/exports/files.cljs:69, src/app/main/ui/nitrate/entry.cljs:26, src/app/main/ui/static.cljs:665, src/app/main/ui/viewer.cljs:641, src/app/main/ui/workspace/sidebar/assets/file_library.cljs:263, src/app/main/ui/workspace.cljs:132
|
||||
msgid "labels.loading"
|
||||
msgstr "กำลังโหลด…"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1527
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:750
|
||||
msgid "labels.logout"
|
||||
msgstr "ลงชื่อออก"
|
||||
|
||||
@ -754,23 +660,19 @@ msgstr "ลงชื่อออก"
|
||||
msgid "labels.member"
|
||||
msgstr "สมาชิก"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:581, src/app/main/ui/dashboard/team.cljs:125, src/app/main/ui/dashboard/team.cljs:133
|
||||
#: src/app/main/ui/dashboard/organization_team_switch_menus.cljs:228, src/app/main/ui/dashboard/team.cljs:125, src/app/main/ui/dashboard/team.cljs:133
|
||||
msgid "labels.members"
|
||||
msgstr "สมาชิก"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:96
|
||||
#: src/app/main/ui/settings/password.cljs:102
|
||||
msgid "labels.new-password"
|
||||
msgstr "รหัสผ่านใหม่"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs:89
|
||||
#: src/app/main/ui/settings/password.cljs:95
|
||||
msgid "labels.old-password"
|
||||
msgstr "รหัสผ่านเดิม"
|
||||
|
||||
#, unused
|
||||
msgid "labels.or"
|
||||
msgstr "หรือ"
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:437, src/app/main/ui/dashboard/team.cljs:675, src/app/main/ui/dashboard/team.cljs:1714
|
||||
#: src/app/main/ui/dashboard/team.cljs:403, src/app/main/ui/dashboard/team.cljs:437, src/app/main/ui/dashboard/team.cljs:675, src/app/main/ui/dashboard/team.cljs:888, src/app/main/ui/dashboard/team.cljs:1720
|
||||
msgid "labels.owner"
|
||||
msgstr "เจ้าของ"
|
||||
|
||||
@ -782,6 +684,6 @@ msgstr "รหัสผ่าน"
|
||||
msgid "labels.profile"
|
||||
msgstr "โปรไฟล์"
|
||||
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:1132
|
||||
#: src/app/main/ui/dashboard/sidebar.cljs:355
|
||||
msgid "labels.projects"
|
||||
msgstr "โปรเจกต์"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user