Compare commits

..

39 Commits

Author SHA1 Message Date
alonso.torres
c08ad5c8c0 ⬆️ Update version 1.13.2-beta 2022-05-27 10:29:39 +02:00
alonso.torres
2ce766c49e 🐛 Fix performance issue with focus mode 2022-05-26 17:55:19 +02:00
Alejandro
bb18a69394 Merge pull request #1958 from penpot/alotor-improved-thumbnail-generation
 Improved frame generation performance
2022-05-26 16:51:13 +02:00
alonso.torres
96ed66d86e Improved frame generation performance 2022-05-26 16:33:16 +02:00
Eva
57ccb18517 💄 remove console 2022-05-26 13:58:00 +02:00
Andrés Moya
d5df465992 🌐 Add Norwegian, Persian and Chinese (Traditional) 2022-05-26 12:48:36 +02:00
Alejandro Alonso
ea6c34f6b2 🐛 Fix github auth without public email 2022-05-26 11:16:09 +02:00
Andrés Moya
36390be72a 🌐 Add new Polish language 2022-05-26 11:10:16 +02:00
alonso.torres
3c41693787 :docs: Update changelog 2022-05-25 21:45:21 +02:00
alonso.torres
b25806b172 🐛 Fix problem with auto-width initial text 2022-05-25 21:43:50 +02:00
Alejandro
0828d43f8f Merge pull request #1954 from penpot/alotor-fix-cache-embeds
🐛 Fix problems with embed data cache
2022-05-25 18:16:15 +02:00
alonso.torres
402212c808 🐛 Fix problems with embed data cache 2022-05-25 18:00:23 +02:00
Andrés Moya
11b2144274 🌐 Add translations for: Spanish.
Currently translated at 100.0% (1110 of 1110 strings)

Translation: Penpot/frontend
Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/es/
2022-05-25 17:20:51 +02:00
Eva Marco
216dbc8e0d Merge pull request #1950 from penpot/palba-invitations-validation
Palba invitations validation
2022-05-25 17:01:21 +02:00
Eva Marco
67b81fbe67 Merge pull request #1949 from penpot/palba-fix-importing-old-penpot-files-frames
Palba fix importing old penpot files frames
2022-05-25 16:50:29 +02:00
Hosted Weblate
fcafe66bd8 🌐 Cherry-pick texts from Weblate for main branch 2022-05-25 16:07:05 +02:00
Pablo Alba
931759f468 🎉 Activate invitations validation 2022-05-25 12:03:05 +02:00
Pablo Alba
f33360a22b 🐛 Importing old penpot files generates frames with 0.01 as width and height
https://tree.taiga.io/project/penpot/issue/3455
2022-05-25 11:58:46 +02:00
Alejandro
910fb55b69 Merge pull request #1948 from penpot/fix-issue-hang-file
🐛 Fix problem with hanging file
2022-05-25 11:33:34 +02:00
alonso.torres
18849307e9 🐛 Fix linting issue 2022-05-25 11:29:49 +02:00
alonso.torres
0f2b2d4590 🐛 Fix problem with hanging file 2022-05-25 11:24:07 +02:00
Andrés Moya
ef37abcbbd 🐛 Allow debug load file with random uuid 2022-05-25 09:52:32 +02:00
alonso.torres
02427285ef 📚 Update changelog 2022-05-25 09:25:51 +02:00
Alejandro
38bc3b061a Merge pull request #1940 from penpot/repair-idless-components
🔧 Add a function to manually repair components without :id
2022-05-25 09:04:19 +02:00
Alejandro
047b3f0987 Merge pull request #1944 from penpot/hiru-dbg-update-file
Hiru dbg update file
2022-05-25 09:04:05 +02:00
Alejandro
6a8f3c7283 Merge pull request #1947 from penpot/alotor-hotfix-1.13
Alotor hotfix 1.13
2022-05-25 08:18:00 +02:00
alonso.torres
525da266b8 🐛 Creates a migration to invalidate texts-position-data 2022-05-24 23:34:23 +02:00
alonso.torres
97c9035cfd 🐛 Fix problems with font initialization 2022-05-24 23:34:23 +02:00
alonso.torres
35681c3af8 🐛 Fix problem with multiple users and texts positions 2022-05-24 23:34:23 +02:00
alonso.torres
8a6f01404c 🐛 Fix hide artboard 2022-05-24 23:34:23 +02:00
alonso.torres
6901431f8a Add debugging tool 2022-05-24 23:34:23 +02:00
Alejandro Alonso
2261bde6f1 🐛 Fix fills priority over imported svg attributes 2022-05-24 14:17:23 +02:00
elhombretecla
40e1d5a2a1 tada: Remove discussions and add twitter to form 2022-05-24 13:58:08 +02:00
Andrés Moya
d52c4541ae 🔧 Preserve id when downloading file with dbg 2022-05-24 13:34:42 +02:00
Andrés Moya
b0c3b38cc5 🔧 Add a function to manually repair components without :id 2022-05-24 12:26:21 +02:00
Eva Marco
494e2df49f Merge pull request #1937 from penpot/superalex-fix-add-stroke-for-text-with-shortcut
🐛 Fix adding string for texts with shortcut
2022-05-24 11:01:32 +02:00
Alejandro Alonso
dcac6d9ea4 🐛 Fix adding string for texts with shortcut 2022-05-24 07:17:15 +02:00
Alejandro
f5128d8d43 Merge pull request #1932 from penpot/fix-div-by-zero
🐛 Fix problem with division by zero
2022-05-23 13:52:17 +02:00
alonso.torres
4c2182dd0b 🐛 Fix problem with division by zero 2022-05-23 13:46:36 +02:00
57 changed files with 6670 additions and 1034 deletions

View File

@@ -8,6 +8,22 @@
### :arrow_up: Deps updates
### :heart: Community contributions by (Thank you!)
## 1.13.2-beta
### :bug: Bugs fixed
- Improved performance when out of focus mode
- Improved performance for thumbnail generation
- Fix problem with out of sync thumbnails
## 1.13.1-beta
### :bug: Bugs fixed
- Fix problem with text positioning
- Fix issue with thumbnail generation before fonts loading
- Fix unable to hide artboards
- Fix problem with fonts cache causing hanging in certain pages
## 1.13.0-beta

View File

@@ -12,6 +12,7 @@
[app.common.uuid :as uuid]
[app.config :as cf]
[app.db :as db]
[app.db.sql :as sql]
[app.rpc.mutations.files :as m.files]
[app.rpc.queries.profile :as profile]
[app.util.blob :as blob]
@@ -59,7 +60,7 @@
"select revn, changes, data from file_change where file_id=? and revn = ?")
(defn prepare-response
[{:keys [params] :as request} body]
[{:keys [params] :as request} body filename]
(when-not body
(ex/raise :type :not-found
:code :enpty-data
@@ -69,8 +70,7 @@
:body body
:headers {"content-type" "application/transit+json"})
(contains? params :download)
(update :headers assoc "content-disposition" "attachment")))
(update :headers assoc "content-disposition" (str "attachment; filename=" filename))))
(defn- retrieve-file-data
[{:keys [pool]} {:keys [params] :as request}]
@@ -78,8 +78,9 @@
(ex/raise :type :authentication
:code :only-admins-allowed))
(let [file-id (some-> (get-in request [:params :file-id]) uuid/uuid)
revn (some-> (get-in request [:params :revn]) d/parse-integer)]
(let [file-id (some-> (get-in request [:params :file-id]) uuid/uuid)
revn (some-> (get-in request [:params :revn]) d/parse-integer)
filename (str file-id)]
(when-not file-id
(ex/raise :type :validation
:code :missing-arguments))
@@ -88,9 +89,9 @@
(some-> (db/exec-one! pool [sql:retrieve-single-change file-id revn]) :data)
(some-> (db/get-by-id pool :file file-id) :data))]
(if (contains? params :download)
(-> (prepare-response request data)
(-> (prepare-response request data filename)
(update :headers assoc "content-type" "application/octet-stream"))
(prepare-response request (some-> data blob/decode))))))
(prepare-response request (some-> data blob/decode) filename)))))
(defn- upload-file-data
[{:keys [pool]} {:keys [profile-id params] :as request}]
@@ -98,12 +99,20 @@
data (some-> params :file :path fs/slurp-bytes blob/decode)]
(if (and data project-id)
(let [fname (str "imported-file-" (dt/now))]
(m.files/create-file pool {:id (uuid/next)
:name fname
:project-id project-id
:profile-id profile-id
:data data})
(let [fname (str "imported-file-" (dt/now))
file-id (try
(uuid/uuid (-> params :file :filename))
(catch Exception _ (uuid/next)))
file (db/exec-one! pool (sql/select :file {:id file-id}))]
(if file
(db/update! pool :file
{:data (blob/encode data)}
{:id file-id})
(m.files/create-file pool {:id file-id
:name fname
:project-id project-id
:profile-id profile-id
:data data}))
(yrs/response 200 "OK"))
(yrs/response 500 "ERROR"))))
@@ -121,8 +130,9 @@
(ex/raise :type :authentication
:code :only-admins-allowed))
(let [file-id (some-> (get-in request [:params :id]) uuid/uuid)
revn (or (get-in request [:params :revn]) "latest")]
(let [file-id (some-> (get-in request [:params :id]) uuid/uuid)
revn (or (get-in request [:params :revn]) "latest")
filename (str file-id)]
(when (or (not file-id) (not revn))
(ex/raise :type :validation
@@ -132,7 +142,7 @@
(cond
(d/num-string? revn)
(let [item (db/exec-one! pool [sql:retrieve-single-change file-id (d/parse-integer revn)])]
(prepare-response request (some-> item :changes blob/decode vec)))
(prepare-response request (some-> item :changes blob/decode vec) filename))
(str/includes? revn ":")
(let [[start end] (->> (str/split revn #":")
@@ -144,7 +154,8 @@
(map :changes)
(map blob/decode)
(mapcat identity)
(vec))))
(vec))
filename))
:else
(ex/raise :type :validation :code :invalid-arguments))))
@@ -176,8 +187,7 @@
(some-> report :error :trace))
:params (:params report)}]
(-> (io/resource "templates/error-report.tmpl")
(tmpl/render params))))
]
(tmpl/render params))))]
(when-not (authorized? pool request)
(ex/raise :type :authentication

View File

@@ -81,14 +81,28 @@
:timeout 6000
:method :get}))
(validate-response [{:keys [status body] :as res}]
(when-not (= 200 status)
(retrieve-emails []
(if (some? (:emails-uri provider))
(http-client {:uri (:emails-uri provider)
:headers {"Authorization" (str (:type tdata) " " (:token tdata))}
:timeout 6000
:method :get})
(p/resolved {:status 200})))
(validate-response [[retrieve-res emails-res]]
(when-not (s/int-in-range? 200 300 (:status retrieve-res))
(ex/raise :type :internal
:code :unable-to-retrieve-user-info
:hint "unable to retrieve user info"
:http-status status
:http-body body))
res)
:http-status (:status retrieve-res)
:http-body (:body retrieve-res)))
(when-not (s/int-in-range? 200 300 (:status emails-res))
(ex/raise :type :internal
:code :unable-to-retrieve-user-info
:hint "unable to retrieve user info"
:http-status (:status emails-res)
:http-body (:body emails-res)))
[retrieve-res emails-res])
(get-email [info]
(let [attr-kw (cf/get :oidc-email-attr :email)]
@@ -98,10 +112,13 @@
(let [attr-kw (cf/get :oidc-name-attr :name)]
(get info attr-kw)))
(process-response [{:keys [body]}]
(let [info (json/read body)]
(process-response [[retrieve-res emails-res]]
(let [info (json/read (:body retrieve-res))
email (if (some? (:extract-email-callback provider))
((:extract-email-callback provider) emails-res)
(get-email info))]
{:backend (:name provider)
:email (get-email info)
:email email
:fullname (get-name info)
:props (->> (dissoc info :name :email)
(qualify-props provider))}))
@@ -116,7 +133,7 @@
:info info))
info)]
(-> (retrieve)
(-> (p/all [(retrieve) (retrieve-emails)])
(p/then' validate-response)
(p/then' process-response)
(p/then' validate-info))))
@@ -386,15 +403,25 @@
(assoc-in cfg [:providers "google"] opts))
cfg)))
(defn extract-github-email
[response]
(let [emails (json/read (:body response))
primary-email (->> emails
(filter #(:primary %))
first)]
(:email primary-email)))
(defn- initialize-github-provider
[cfg]
(let [opts {:client-id (cf/get :github-client-id)
:client-secret (cf/get :github-client-secret)
:scopes #{"read:user" "user:email"}
:auth-uri "https://github.com/login/oauth/authorize"
:token-uri "https://github.com/login/oauth/access_token"
:user-uri "https://api.github.com/user"
:name "github"}]
(let [opts {:client-id (cf/get :github-client-id)
:client-secret (cf/get :github-client-secret)
:scopes #{"read:user" "user:email"}
:auth-uri "https://github.com/login/oauth/authorize"
:token-uri "https://github.com/login/oauth/access_token"
:emails-uri "https://api.github.com/user/emails"
:extract-email-callback extract-github-email
:user-uri "https://api.github.com/user"
:name "github"}]
(if (and (string? (:client-id opts))
(string? (:client-secret opts)))
(do

View File

@@ -123,7 +123,7 @@
(defmethod process-token :team-invitation
[cfg {:keys [profile-id token]} {:keys [member-id] :as claims}]
(us/assert ::team-invitation-claims claims)
#_(let [conn (:conn cfg)
(let [conn (:conn cfg)
team-id (:team-id claims)
member-email (:member-email claims)
invitation (db/get-by-params conn :team-invitation

View File

@@ -99,6 +99,27 @@
(update data :pages-index d/update-vals update-page)))
(defn repair-idless-components
"There are some files that contains components with no :id attribute.
This function detects them and repairs it.
Use it with the update-file function above."
[data]
(letfn [(update-component [id component]
(if (nil? (:id component))
(do
(prn (:id data) "Broken component" (:name component) id)
(assoc component :id id))
component))]
(update data :components #(d/mapm update-component %))))
(defn analyze-idless-components
"Scan all files to check if there are any one with idless components.
(Does not save the changes, only used to detect affected files)."
[file _]
(repair-idless-components (:data file)))
;; (defn check-image-shapes
;; [{:keys [data] :as file} stats]
;; (println "=> analizing file:" (:name file) (:id file))
@@ -138,9 +159,11 @@
(loop [cursor (dt/now)
chunks 0]
(when (< chunks max-chunks)
(when-let [chunk (retrieve-chunk conn cursor)]
(let [cursor (-> chunk last :modified-at)]
(process-chunk chunk)
(Thread/sleep (inst-ms (dt/duration sleep)))
(recur cursor (inc chunks))))))
(let [chunk (retrieve-chunk conn cursor)]
(when-not (empty? chunk)
(let [cursor (-> chunk last :modified-at)]
(process-chunk chunk)
(Thread/sleep (inst-ms (dt/duration sleep)))
(recur cursor (inc chunks)))))))
@stats))))

View File

@@ -4,7 +4,15 @@
;;
;; Copyright (c) UXBOX Labs SL
(ns app.common.geom.shapes.corners)
(ns app.common.geom.shapes.corners
(:require
[app.common.math :as mth]))
(defn- zero-div
[a b]
(if (mth/almost-zero? b)
##Inf
(/ a b)))
(defn fix-radius
;; https://www.w3.org/TR/css-backgrounds-3/#corner-overlap
@@ -16,17 +24,19 @@
;; > the sum of the two corresponding radii of the corners on side i, and Ltop = Lbottom = the width of the box, and
;; > Lleft = Lright = the height of the box. If f < 1, then all corner radii are reduced by multiplying them by f.
([width height r]
(let [f (min (/ width (* 2 r))
(/ height (* 2 r)))]
(let [f (min 1
(zero-div width (* 2 r))
(zero-div height (* 2 r)))]
(if (< f 1)
(* r f)
r)))
([width height r1 r2 r3 r4]
(let [f (min (/ width (+ r1 r2))
(/ height (+ r2 r3))
(/ width (+ r3 r4))
(/ height (+ r4 r1)))]
(let [f (min 1
(zero-div width (+ r1 r2))
(zero-div height (+ r2 r3))
(zero-div width (+ r3 r4))
(zero-div height (+ r4 r1)))]
(if (< f 1)
[(* r1 f) (* r2 f) (* r3 f) (* r4 f)]
[r1 r2 r3 r4]))))
@@ -34,7 +44,7 @@
(defn shape-corners-1
"Retrieve the effective value for the corner given a single value for corner."
[{:keys [width height rx] :as shape}]
(if (some? rx)
(if (and (some? rx) (not (mth/almost-zero? rx)))
(fix-radius width height rx)
0))

View File

@@ -9,7 +9,7 @@
[app.common.colors :as clr]
[app.common.uuid :as uuid]))
(def file-version 17)
(def file-version 18)
(def default-color clr/gray-20)
(def root uuid/zero)

View File

@@ -400,5 +400,20 @@
(update :pages-index d/update-vals update-container)
(update :components d/update-vals update-container))))
;;Remove position-data to solve a bug with the text positioning
(defmethod migrate 18
[data]
(letfn [(update-object [object]
(cond-> object
(cph/text-shape? object)
(dissoc :position-data)))
(update-container [container]
(update container :objects d/update-vals update-object))]
(-> data
(update :pages-index d/update-vals update-container)
(update :components d/update-vals update-container))))
;; TODO: pending to do a migration for delete already not used fill
;; and stroke props. This should be done for >1.14.x version.

View File

@@ -44,7 +44,7 @@ marked.use({renderer});
// Templates
function readLocales() {
const langs = ["ar", "he", "ca", "de", "el", "en", "es", "fr", "tr", "ru", "zh_CN", "pt_BR", "ro"];
const langs = ["ar", "ca", "de", "el", "en", "es", "fa", "fr", "he", "nb_NO", "pl", "pt_BR", "ro", "ru", "tr", "zh_CN", "zh_Hant"];
const result = {};
for (let lang of langs) {

View File

@@ -50,6 +50,10 @@
justify-content: space-between;
flex-direction: row;
}
h2 {
margin-bottom: 1rem;
}
}
.avatar-form {

View File

@@ -107,6 +107,30 @@
(rx/of (update-indices page-id changes))))
(rx/empty))))))
(defn changed-frames
"Extracts the frame-ids changed in the given changes"
[changes objects]
(let [change->ids
(fn [change]
(case (:type change)
:add-obj
[(:parent-id change)]
(:mod-obj :del-obj)
[(:id change)]
:mov-objects
(d/concat-vec (:shapes change) [(:parent-id change)])
[]))]
(into #{}
(comp (mapcat change->ids)
(keep #(if (= :frame (get-in objects [% :type]))
%
(get-in objects [% :frame-id])))
(remove #(= uuid/zero %)))
changes)))
(defn commit-changes
[{:keys [redo-changes undo-changes
@@ -115,15 +139,18 @@
(log/debug :msg "commit-changes"
:js/redo-changes redo-changes
:js/undo-changes undo-changes)
(let [error (volatile! nil)]
(let [error (volatile! nil)
page-id (:current-page-id @st/state)
frames (changed-frames redo-changes (wsh/lookup-page-objects @st/state))]
(ptk/reify ::commit-changes
cljs.core/IDeref
(-deref [_]
{:file-id file-id
:hint-events @st/last-events
:hint-origin (ptk/type origin)
:changes redo-changes})
:changes redo-changes
:page-id page-id
:frames frames})
ptk/UpdateEvent
(update [_ state]

View File

@@ -279,7 +279,10 @@
:always
(d/without-nils))]
(assoc-in shape [:strokes index] new-attrs)))))))))
(-> shape
(cond-> (not (contains? shape :strokes))
(assoc :strokes []))
(assoc-in [:strokes index] new-attrs))))))))))
(defn add-stroke
[ids stroke]

View File

@@ -195,13 +195,26 @@
(ptk/reify ::handle-file-change
ptk/WatchEvent
(watch [_ _ _]
(let [changes-by-pages (group-by :page-id changes)
(let [position-data-operation?
(fn [{:keys [type attr]}]
(and (= :set type) (= attr :position-data)))
remove-update-position-data
(fn [change]
(cond-> change
(= :mod-obj (:type change))
(update :operations #(filterv (comp not position-data-operation?) %))))
process-page-changes
(fn [[page-id changes]]
(dch/update-indices page-id changes))]
(dch/update-indices page-id changes))
;; We remove `position-data` from the incomming message
changes (->> changes (mapv remove-update-position-data))
changes-by-pages (group-by :page-id changes)]
(rx/merge
(rx/of (dwp/shapes-changes-persisted file-id msg))
(rx/of (dwp/shapes-changes-persisted file-id (assoc msg :changes changes)))
(when-not (empty? changes-by-pages)
(rx/from (map process-page-changes changes-by-pages))))))))

View File

@@ -6,6 +6,7 @@
(ns app.main.data.workspace.persistence
(:require
[app.common.data :as d]
[app.common.logging :as log]
[app.common.pages :as cp]
[app.common.spec :as us]
@@ -17,6 +18,7 @@
[app.main.data.fonts :as df]
[app.main.data.workspace.changes :as dch]
[app.main.data.workspace.state-helpers :as wsh]
[app.main.data.workspace.thumbnails :as dwt]
[app.main.repo :as rp]
[app.main.store :as st]
[app.util.http :as http]
@@ -138,16 +140,27 @@
:revn (:revn file)
:session-id sid
:changes-with-metadata (into [] changes)}]
(when (= file-id (:id params))
(->> (rp/mutation :update-file params)
(rx/mapcat (fn [lagged]
(log/debug :hint "changes persisted" :lagged (count lagged))
(let [lagged (cond->> lagged
(= #{sid} (into #{} (map :session-id) lagged))
(map #(assoc % :changes [])))]
(->> (rx/of lagged)
(rx/mapcat seq)
(rx/map #(shapes-changes-persisted file-id %))))))
(map #(assoc % :changes [])))
frame-updates
(-> (group-by :page-id changes)
(d/update-vals #(into #{} (mapcat :frames) %)))]
(rx/merge
(->> (rx/from frame-updates)
(rx/flat-map (fn [[page-id frames]]
(->> frames (map #(vector page-id %)))))
(rx/map (fn [[page-id frame-id]] (dwt/update-thumbnail page-id frame-id))))
(->> (rx/of lagged)
(rx/mapcat seq)
(rx/map #(shapes-changes-persisted file-id %)))))))
(rx/catch (fn [cause]
(rx/concat
(rx/of (rt/assign-exception cause))

View File

@@ -63,13 +63,17 @@
(ted/get-editor-current-content))]
(if (ted/content-has-text? content)
(let [content (d/merge (ted/export-content content)
(dissoc (:content shape) :children))]
(dissoc (:content shape) :children))
modifiers (get-in state [:workspace-text-modifier id])]
(rx/merge
(rx/of (update-editor-state shape nil))
(when (and (not= content (:content shape))
(some? (:current-page-id state)))
(rx/of
(dch/update-shapes [id] #(assoc % :content content))
(dch/update-shapes [id] (fn [shape]
(-> shape
(assoc :content content)
(merge modifiers))))
(dwu/commit-undo-transaction)))))
(when (some? id)

View File

@@ -6,7 +6,6 @@
(ns app.main.data.workspace.thumbnails
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.pages.helpers :as cph]
[app.common.uuid :as uuid]
@@ -14,6 +13,8 @@
[app.main.refs :as refs]
[app.main.repo :as rp]
[app.main.store :as st]
[app.util.dom :as dom]
[app.util.webapi :as wapi]
[beicon.core :as rx]
[potok.core :as ptk]))
@@ -26,45 +27,47 @@
(rx/filter #(= % id))
(rx/take 1)))
(defn thumbnail-stream
[object-id]
(rx/create
(fn [subs]
(let [node (dom/query (dm/fmt "canvas.thumbnail-canvas[data-object-id='%'" object-id))]
(if (some? node)
(-> node
(.toBlob (fn [blob]
(rx/push! subs blob)
(rx/end! subs))
"image/png"))
;; If we cannot find the node we send `nil` and the upsert will delete the thumbnail
(do (rx/push! subs nil)
(rx/end! subs)))))))
(defn update-thumbnail
"Updates the thumbnail information for the given frame `id`"
[page-id frame-id data]
(let [lock (uuid/next)
object-id (dm/str page-id frame-id)]
[page-id frame-id]
(ptk/reify ::update-thumbnail
ptk/WatchEvent
(watch [_ state _]
(let [object-id (dm/str page-id frame-id)
file-id (:current-file-id state)
blob-result (thumbnail-stream object-id)]
(ptk/reify ::update-thumbnail
IDeref
(-deref [_] {:object-id object-id :data data})
ptk/UpdateEvent
(update [_ state]
(-> state
(assoc-in [:workspace-file :thumbnails object-id] data)
(cond-> (nil? (get-in state [::update-thumbnail-lock object-id]))
(assoc-in [::update-thumbnail-lock object-id] lock))))
(->> blob-result
(rx/merge-map
(fn [blob]
(if (some? blob)
(wapi/read-file-as-data-url blob)
(rx/of nil))))
ptk/WatchEvent
(watch [_ state stream]
(when (= lock (get-in state [::update-thumbnail-lock object-id]))
(let [stopper (->> stream (rx/filter (ptk/type? :app.main.data.workspace/finalize)))
params {:file-id (:current-file-id state)
:object-id object-id}]
;; Sends the first event and debounce the rest. Will only make one update once
;; the 2 second debounce is finished
(rx/merge
(->> stream
(rx/filter (ptk/type? ::update-thumbnail))
(rx/map deref)
(rx/filter #(= object-id (:object-id %)))
(rx/debounce 2000)
(rx/take 1)
(rx/map :data)
(rx/flat-map #(rp/mutation! :upsert-file-object-thumbnail (assoc params :data %)))
(rx/map #(fn [state] (d/dissoc-in state [::update-thumbnail-lock object-id])))
(rx/take-until stopper))
(->> (rx/of (update-thumbnail page-id frame-id data))
(rx/observe-on :async)))))))))
(rx/merge-map
(fn [data]
(let [params {:file-id file-id :object-id object-id :data data}]
(rx/merge
;; Update the local copy of the thumbnails so we don't need to request it again
(rx/of #(assoc-in % [:workspace-file :thumbnails object-id] data))
(->> (rp/mutation! :upsert-file-object-thumbnail params)
(rx/ignore)))))))))))
(defn- extract-frame-changes
"Process a changes set in a commit to extract the frames that are changing"
@@ -156,5 +159,3 @@
(let [page-id (get state :current-page-id)
old-shape-thumbnail (get-in state [:workspace-file :thumbnails (dm/str page-id old-id)])]
(-> state (assoc-in [:workspace-file :thumbnails (dm/str page-id new-id)] old-shape-thumbnail))))))

View File

@@ -82,6 +82,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defonce loaded (l/atom #{}))
(defonce loading (l/atom {}))
(defn- create-link-element
[uri]
@@ -199,11 +200,34 @@
(p/create (fn [resolve]
(ensure-loaded! id resolve))))
([id on-loaded]
(if (contains? @loaded id)
(on-loaded id)
(when-let [font (get @fontsdb id)]
(load-font (assoc font ::on-loaded on-loaded))
(swap! loaded conj id)))))
(let [font (get @fontsdb id)]
(cond
;; Font already loaded, we just continue
(contains? @loaded id)
(on-loaded id)
;; Font is currently downloading. We attach the caller to the promise
(contains? @loading id)
(-> (get @loading id)
(p/then #(on-loaded id)))
;; First caller, we create the promise and then wait
:else
(let [on-load (fn [resolve]
(swap! loaded conj id)
(swap! loading dissoc id)
(on-loaded id)
(resolve id))
load-p (p/create
(fn [resolve _]
(-> font
(assoc ::on-loaded (partial on-load resolve))
(load-font))))]
(swap! loading assoc id load-p)
nil)))))
(defn ready
[cb]

View File

@@ -75,7 +75,6 @@
on-succes
(fn [data]
(prn "SUCCESS" data)
(when-let [token (:invitation-token data)]
(st/emit! (rt/nav :auth-verify-token {} {:token token}))))

View File

@@ -81,13 +81,12 @@
[:hr]
[:h2 (tr "feedback.discussions-title")]
[:p (tr "feedback.discussions-subtitle1")]
[:p (tr "feedback.discussions-subtitle2")]
[:h2 (tr "feedback.twitter-title")]
[:p (tr "feedback.twitter-subtitle1")]
[:a.btn-secondary.btn-large
{:href "https://github.com/penpot/penpot/discussions" :target "_blank"}
(tr "feedback.discussions-go-to")]
{:href "https://twitter.com/PenpotSupport" :target "_blank"}
(tr "feedback.twitter-go-to")]
[:hr]

View File

@@ -360,7 +360,7 @@
(-> props
(obj/set! "style" style)))
(some? svg-attrs)
(and (some? svg-attrs) (empty? (:fills shape)))
(let [style
(-> (obj/get props "style")
(obj/clone))

View File

@@ -73,8 +73,12 @@
;; Creates a style tag by replacing the urls with the data uri
style (replace-embeds fonts-css fonts-urls fonts-embed)]
(when (d/not-empty? style)
[:style {:data-loading loading?} style])))
(cond
(d/not-empty? style)
[:style {:data-loading loading?} style]
(d/not-empty? fonts)
[:style {:data-loading true}])))
(defn shape->fonts
[shape objects]

View File

@@ -110,7 +110,10 @@
(let [font-variant (d/seek #(= font-variant-id (:id %)) (:variants font))]
[(str/quote (or (:family font) (:font-family data)))
(or (:style font-variant) (:font-style data))
(or (:weight font-variant) (:font-weight data))]))]
(or (:weight font-variant) (:font-weight data))]))
base (-> base
(obj/set! "--font-id" font-id))]
(cond-> base
(some? fills)

View File

@@ -71,11 +71,6 @@
frame-id (:id shape)
page-id (mf/use-ctx ctx/current-page-id)
thumbnail-data-ref (mf/use-memo (mf/deps page-id frame-id) #(refs/thumbnail-frame-data page-id frame-id))
thumbnail-data (mf/deref thumbnail-data-ref)
thumbnail? (and thumbnail? (some? thumbnail-data))
;; References to the current rendered node and the its parentn
node-ref (mf/use-var nil)
@@ -88,11 +83,11 @@
disable-thumbnail? (d/not-empty? (dm/get-in modifiers [(:id shape) :modifiers]))
[on-load-frame-dom thumb-renderer]
(ftr/use-render-thumbnail page-id shape node-ref rendered? thumbnail-data-ref disable-thumbnail?)
[on-load-frame-dom render-frame? thumbnail-renderer]
(ftr/use-render-thumbnail page-id shape node-ref rendered? disable-thumbnail?)
on-frame-load
(fns/use-node-store thumbnail? node-ref rendered?)]
(fns/use-node-store thumbnail? node-ref rendered? render-frame?)]
(fdm/use-dynamic-modifiers objects @node-ref modifiers)
@@ -115,9 +110,9 @@
(rx/dispose! sub)))))
(mf/use-effect
(mf/deps shape fonts thumbnail? on-load-frame-dom @force-render)
(mf/deps shape fonts thumbnail? on-load-frame-dom @force-render render-frame?)
(fn []
(when (and (some? @node-ref) (or @rendered? (not thumbnail?) @force-render))
(when (and (some? @node-ref) (or @rendered? (not thumbnail?) @force-render render-frame?))
(mf/mount
(mf/element frame-shape
#js {:ref on-load-frame-dom :shape shape :fonts fonts})
@@ -128,12 +123,11 @@
[:& (mf/provider ctx/render-ctx) {:value render-id}
[:g.frame-container {:id (dm/str "frame-container-" (:id shape))
:key "frame-container"
:ref on-frame-load}
:ref on-frame-load
:opacity (when (:hidden shape) 0)}
[:& ff/fontfaces-style {:fonts fonts}]
[:g.frame-thumbnail-wrapper {:id (dm/str "thumbnail-container-" (:id shape))}
[:> frame/frame-thumbnail {:key (dm/str (:id shape))
:shape (cond-> shape
(some? thumbnail-data)
(assoc :thumbnail thumbnail-data))}]
thumb-renderer]]]))))
[:g.frame-thumbnail-wrapper
{:id (dm/str "thumbnail-container-" (:id shape))
;; Hide the thumbnail when not displaying
:opacity (when (and @rendered? (not thumbnail?)) 0)}
thumbnail-renderer]]]))))

View File

@@ -12,7 +12,7 @@
(defn use-node-store
"Hook responsible of storing the rendered DOM node in memory while not being used"
[thumbnail? node-ref rendered?]
[thumbnail? node-ref rendered? render-frame?]
(let [;; when `true` the node is in memory
in-memory? (mf/use-var true)
@@ -33,13 +33,13 @@
(swap! re-render inc)))))]
(mf/use-effect
(mf/deps thumbnail?)
(mf/deps thumbnail? render-frame?)
(fn []
(when (and (some? @parent-ref) (some? @node-ref) @rendered? thumbnail?)
(when (and (some? @parent-ref) (some? @node-ref) @rendered? (and thumbnail? (not render-frame?)))
(.removeChild @parent-ref @node-ref)
(reset! in-memory? true))
(when (and (some? @node-ref) @in-memory? (not thumbnail?))
(when (and (some? @node-ref) @in-memory? (or (not thumbnail?) render-frame?))
(.appendChild @parent-ref @node-ref)
(reset! in-memory? false))))

View File

@@ -9,19 +9,20 @@
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.math :as mth]
[app.main.data.workspace :as dw]
[app.main.data.workspace.thumbnails :as dwt]
[app.main.refs :as refs]
[app.main.store :as st]
[app.main.ui.hooks :as hooks]
[app.main.ui.shapes.frame :as frame]
[app.util.dom :as dom]
[app.util.object :as obj]
[app.util.timers :as ts]
[beicon.core :as rx]
[cuerdas.core :as str]
[debug :refer [debug?]]
[rumext.alpha :as mf]))
;; (def thumbnail-scale-factor 2)
(defn- draw-thumbnail-canvas
(defn- draw-thumbnail-canvas!
[canvas-node img-node]
(try
(when (and (some? canvas-node) (some? img-node))
@@ -29,19 +30,12 @@
canvas-width (.-width canvas-node)
canvas-height (.-height canvas-node)]
;; TODO: Expermient with different scale factors
;; (set! (.-width canvas-node) (* thumbnail-scale-factor canvas-width))
;; (set! (.-height canvas-node) (* thumbnail-scale-factor canvas-height))
;; (.setTransform canvas-context thumbnail-scale-factor 0 0 thumbnail-scale-factor 0 0)
;; (set! (.-imageSmoothingEnabled canvas-context) true)
;; (set! (.-imageSmoothingQuality canvas-context) "high")
(.clearRect canvas-context 0 0 canvas-width canvas-height)
(.drawImage canvas-context img-node 0 0 canvas-width canvas-height)
(.toDataURL canvas-node "image/png" 1.0)))
true))
(catch :default err
(.error js/console err)
nil)))
false)))
(defn- remove-image-loading
"Remove the changes related to change a url for its embed value. This is necessary
@@ -59,7 +53,7 @@
(defn use-render-thumbnail
"Hook that will create the thumbnail thata"
[page-id {:keys [id x y width height] :as shape} node-ref rendered? thumbnail-data-ref disable?]
[page-id {:keys [id x y width height] :as shape} node-ref rendered? disable?]
(let [frame-canvas-ref (mf/use-ref nil)
frame-image-ref (mf/use-ref nil)
@@ -78,16 +72,25 @@
updates-str (mf/use-memo #(rx/subject))
thumbnail-data-ref (mf/use-memo (mf/deps page-id id) #(refs/thumbnail-frame-data page-id id))
thumbnail-data (mf/deref thumbnail-data-ref)
render-frame? (mf/use-state (not thumbnail-data))
on-image-load
(mf/use-callback
(fn []
(ts/raf
#(let [canvas-node (mf/ref-val frame-canvas-ref)
img-node (mf/ref-val frame-image-ref)
thumb-data (draw-thumbnail-canvas canvas-node img-node)]
(when (some? thumb-data)
(st/emit! (dw/update-thumbnail page-id id thumb-data))
(reset! image-url nil))))))
img-node (mf/ref-val frame-image-ref)]
(when (draw-thumbnail-canvas! canvas-node img-node)
(reset! image-url nil)
(reset! render-frame? false))
;; If we don't have the thumbnail data saved (normaly the first load) we update the data
;; when available
(when (not @thumbnail-data-ref)
(st/emit! (dwt/update-thumbnail page-id id) ))))))
generate-thumbnail
(mf/use-callback
@@ -115,7 +118,7 @@
(fn []
(when (and (some? @node-ref) @regenerate-thumbnail)
(let [loading-images? (some? (dom/query @node-ref "[data-loading='true']"))
loading-fonts? (some? (dom/query (dm/str "#frame-container-" (:id shape) " style[data-loading='true']")))]
loading-fonts? (some? (dom/query (dm/str "#frame-container-" (:id shape) " > style[data-loading='true']")))]
(when (and (not loading-images?) (not loading-fonts?))
(generate-thumbnail)
(reset! regenerate-thumbnail false))))))
@@ -172,18 +175,28 @@
(reset! observer-ref nil)))))
[on-load-frame-dom
(when (some? @image-url)
(mf/html
[:g.thumbnail-rendering
[:foreignObject {:x x :y y :width width :height height}
[:canvas {:ref frame-canvas-ref
:width fixed-width
:height fixed-height}]]
@render-frame?
(mf/html
[:*
[:> frame/frame-thumbnail {:key (dm/str (:id shape))
:shape (cond-> shape
(some? thumbnail-data)
(assoc :thumbnail thumbnail-data))}]
[:foreignObject {:x x :y y :width width :height height}
[:canvas.thumbnail-canvas
{:ref frame-canvas-ref
:data-object-id (dm/str page-id (:id shape))
:width fixed-width
:height fixed-height
;; DEBUG
:style {:filter (when (debug? :thumbnails) "invert(1)")}}]]
(when (some? @image-url)
[:image {:ref frame-image-ref
:x (:x shape)
:y (:y shape)
:href @image-url
:width (:width shape)
:height (:height shape)
:on-load on-image-load}]]))]))
:on-load on-image-load}])])]))

View File

@@ -23,6 +23,7 @@
[app.util.text-editor :as ted]
[app.util.text-svg-position :as utp]
[app.util.timers :as ts]
[promesa.core :as p]
[rumext.alpha :as mf]))
(defn strip-position-data [shape]
@@ -61,37 +62,39 @@
(assoc :content (d/txt-merge content editor-content)))))
(defn- update-text-shape
[{:keys [grow-type id]} node]
[{:keys [grow-type id migrate]} node]
;; Check if we need to update the size because it's auto-width or auto-height
(when (contains? #{:auto-height :auto-width} grow-type)
(let [{:keys [width height]}
(-> (dom/query node ".paragraph-set")
(dom/get-client-size))
width (mth/ceil width)
height (mth/ceil height)]
(when (and (not (mth/almost-zero? width)) (not (mth/almost-zero? height)))
(st/emit! (dwt/resize-text id width height)))))
;; Update the position-data of every text fragment
(let [position-data (utp/calc-position-data node)]
(st/emit! (dwt/update-position-data id position-data)))
(p/let [position-data (utp/calc-position-data node)]
(st/emit! (dwt/update-position-data id position-data))
(when (contains? #{:auto-height :auto-width} grow-type)
(let [{:keys [width height]}
(-> (dom/query node ".paragraph-set")
(dom/get-client-size))
width (mth/ceil width)
height (mth/ceil height)]
(when (and (not (mth/almost-zero? width))
(not (mth/almost-zero? height))
(not migrate))
(st/emit! (dwt/resize-text id width height))))))
(st/emit! (dwt/clean-text-modifier id)))
(defn- update-text-modifier
[{:keys [grow-type id]} node]
(let [position-data (utp/calc-position-data node)
props {:position-data position-data}
(p/let [position-data (utp/calc-position-data node)
props {:position-data position-data}
props
(if (contains? #{:auto-height :auto-width} grow-type)
(let [{:keys [width height]} (-> (dom/query node ".paragraph-set") (dom/get-client-size))
width (mth/ceil width)
height (mth/ceil height)]
(if (and (not (mth/almost-zero? width)) (not (mth/almost-zero? height)))
(assoc props :width width :height height)
props))
props)]
props
(if (contains? #{:auto-height :auto-width} grow-type)
(let [{:keys [width height]} (-> (dom/query node ".paragraph-set") (dom/get-client-size))
width (mth/ceil width)
height (mth/ceil height)]
(if (and (not (mth/almost-zero? width)) (not (mth/almost-zero? height)))
(assoc props :width width :height height)
props))
props)]
(st/emit! (dwt/update-text-modifier id props))))
@@ -228,7 +231,14 @@
(mf/deps text-shapes modifiers)
#(d/update-vals text-shapes (partial process-shape modifiers)))
editing-shape (get text-shapes edition)]
editing-shape (get text-shapes edition)
;; This memo is necesary so the viewport-text-wrapper memoize its props correctly
text-shapes-wrapper
(mf/use-memo
(mf/deps text-shapes edition)
(fn []
(dissoc text-shapes edition)))]
;; We only need the effect to run on "mount" because the next fonts will be changed when the texts are
;; edited
@@ -242,5 +252,5 @@
(when editing-shape
[:& viewport-text-editing {:shape editing-shape}])
[:& viewport-texts-wrapper {:text-shapes (dissoc text-shapes edition)
[:& viewport-texts-wrapper {:text-shapes text-shapes-wrapper
:modifiers modifiers}]]))

View File

@@ -71,8 +71,8 @@
focus (mf/deref refs/workspace-focus-selected)
objects-ref (mf/use-memo #(refs/workspace-page-objects-by-id page-id))
base-objects (-> (mf/deref objects-ref)
(ui-hooks/with-focus-objects focus))
objects (mf/deref objects-ref)
base-objects (-> objects (ui-hooks/with-focus-objects focus))
modifiers (mf/deref refs/workspace-modifiers)
@@ -245,7 +245,7 @@
[:g {:pointer-events "none" :opacity 0}
[:& stv/viewport-texts {:key (dm/str "texts-" page-id)
:page-id page-id
:objects base-objects
:objects objects
:modifiers modifiers
:edition edition}]]]

View File

@@ -25,6 +25,7 @@
[app.util.globals :as globals]
[app.util.timers :as timers]
[beicon.core :as rx]
[debug :refer [debug?]]
[goog.events :as events]
[rumext.alpha :as mf])
(:import goog.events.EventType))
@@ -269,7 +270,11 @@
;; We only allow active frames that are contained in the vbox
(filter (partial inside-vbox vbox objects)))
all-frames)]
all-frames)
;; Debug only: Disable the thumbnails
new-active-frames
(if (debug? :disable-frame-thumbnails) (into #{} all-frames) new-active-frames)]
(when (not= @active-frames new-active-frames)
(reset! active-frames new-active-frames)))))))

View File

@@ -135,35 +135,36 @@
(on-frame-leave (:id frame))))
text-pos-x (if (:use-for-thumbnail? frame) 15 0)]
[:*
(when (:use-for-thumbnail? frame)
[:g {:transform (str (when (and selected? modifiers)
(str (:displacement modifiers) " "))
(text-transform label-pos zoom))}
[:svg {:x 0
:y -9
:width 12
:height 12
:class "workspace-frame-icon"
(when (not (:hidden frame))
[:*
(when (:use-for-thumbnail? frame)
[:g {:transform (str (when (and selected? modifiers)
(str (:displacement modifiers) " "))
(text-transform label-pos zoom))}
[:svg {:x 0
:y -9
:width 12
:height 12
:class "workspace-frame-icon"
:style {:fill (when selected? "var(--color-primary-dark)")}
:visibility (if show-artboard-names? "visible" "hidden")}
[:use {:href "#icon-set-thumbnail"}]]])
[:text {:x text-pos-x
:y 0
:width width
:height 20
:class "workspace-frame-label"
:transform (str (when (and selected? modifiers)
(str (:displacement modifiers) " "))
(text-transform label-pos zoom))
:style {:fill (when selected? "var(--color-primary-dark)")}
:visibility (if show-artboard-names? "visible" "hidden")}
[:use {:href "#icon-set-thumbnail"}]]])
[:text {:x text-pos-x
:y 0
:width width
:height 20
:class "workspace-frame-label"
:transform (str (when (and selected? modifiers)
(str (:displacement modifiers) " "))
(text-transform label-pos zoom))
:style {:fill (when selected? "var(--color-primary-dark)")}
:visibility (if show-artboard-names? "visible" "hidden")
:on-mouse-down on-mouse-down
:on-double-click on-double-click
:on-context-menu on-context-menu
:on-pointer-enter on-pointer-enter
:on-pointer-leave on-pointer-leave}
(:name frame)]]))
:visibility (if show-artboard-names? "visible" "hidden")
:on-mouse-down on-mouse-down
:on-double-click on-double-click
:on-context-menu on-context-menu
:on-pointer-enter on-pointer-enter
:on-pointer-leave on-pointer-leave}
(:name frame)]])))
(mf/defc frame-titles
{::mf/wrap-props false

View File

@@ -10,17 +10,34 @@
[beicon.core :as rx]))
(defonce cache (atom {}))
(defonce pending (atom {}))
(defn with-cache
[{:keys [key max-age]} observable]
(let [entry (get @cache key)
pending-entry (get @pending key)
age (when entry
(dt/diff (dt/now)
(:created-at entry)))]
(if (and (some? entry) (< age max-age))
(cond
(and (some? entry) (< age max-age))
(rx/of (:data entry))
(->> observable
(rx/tap
(fn [data]
(let [entry {:created-at (dt/now) :data data}]
(swap! cache assoc key entry))))))))
(some? pending-entry)
pending-entry
:else
(let [subject (rx/subject)]
(swap! pending assoc key subject)
(->> observable
(rx/catch #(do (rx/error! subject %)
(swap! pending dissoc key)
(rx/throw %)))
(rx/tap
(fn [data]
(let [entry {:created-at (dt/now) :data data}]
(swap! cache assoc key entry))
(rx/push! subject data)
(rx/end! subject)
(swap! pending dissoc key))))))))

View File

@@ -548,3 +548,11 @@
(seq (.-children node)))]
(->> root-node
(tree-seq branch? get-children))))
(defn check-font? [font]
(let [fonts (.-fonts globals/document)]
(.check fonts font)))
(defn load-font [font]
(let [fonts (.-fonts globals/document)]
(.load fonts font)))

View File

@@ -173,32 +173,34 @@
(fetch-data-uri uri false))
([uri throw-err?]
(c/with-cache {:key uri :max-age (dt/duration {:hours 4})}
(let [request-stream
(send! {:method :get
:uri uri
:response-type :blob
:omit-default-headers true})
(let [request-str
(->> (send! {:method :get
:uri uri
:response-type :blob
:omit-default-headers true})
(rx/tap
(fn [resp]
(when (or (< (:status resp) 200) (>= (:status resp) 300))
(rx/throw (js/Error. "Error fetching data uri" #js {:cause (clj->js resp)})))))
request-stream
(if throw-err?
(rx/tap #(when-not (and (>= (:status %) 200) (< (:status %) 300))
;; HTTP ERRROR
(throw (js/Error. "Error fetching data uri" #js {:cause (clj->js %)})))
request-stream)
(rx/filter #(= 200 (:status %))
request-stream))]
(->> request-stream
(rx/map :body)
(rx/mapcat wapi/read-file-as-data-url)
(rx/map #(hash-map uri %)))))))
(rx/map :body)
(rx/mapcat wapi/read-file-as-data-url)
(rx/map #(hash-map uri %))
(c/with-cache {:key uri :max-age (dt/duration {:hours 4})}))]
;; We need to check `throw-err?` after the cache is resolved otherwise we cannot cache request
;; with different values of throw-err. By default we throw always the exception and then we just
;; ignore when `throw-err?` is `true`
(if (not throw-err?)
(->> request-str (rx/catch #(rx/empty)))
request-str))))
(defn fetch-text [url]
(c/with-cache {:key url :max-age (dt/duration {:hours 4})}
(->> (send!
{:method :get
:mode :cors
:omit-default-headers true
:uri url
:response-type :text})
(rx/map :body))))
(->> (send!
{:method :get
:mode :cors
:omit-default-headers true
:uri url
:response-type :text})
(rx/map :body)
(c/with-cache {:key url :max-age (dt/duration {:hours 4})})))

View File

@@ -22,14 +22,18 @@
{:label "Català" :value "ca"}
{:label "Français (community)" :value "fr"}
{:label "Deutsch (community)" :value "de"}
{:label "Norsk - Bokmål (community)" :value "nb_no"}
{:label "Portuguese - Brazil (community)" :value "pt_br"}
{:label "Polski (community)" :value "pl"}
{:label "Русский (community)" :value "ru"}
{:label "Rumanian (community)" :value "ro"}
{:label "Türkçe (community)" :value "tr"}
{:label "Rumanian (communit)" :value "ro"}
{:label "Portuguese (Brazil, community)" :value "pt_br"}
{:label "Ελληνική γλώσσα (community)" :value "el"}
{:label "עִבְרִית (community)" :value "he"}
{:label "عربي/عربى (community)" :value "ar"}
{:label "简体中文 (community)" :value "zh_cn"}])
{:label "فارسی (community)" :value "fa"}
{:label "简体中文 (community)" :value "zh_cn"}
{:label "中国传统的 (community)" :value "zh_hant"}])
(defn- parse-locale
[locale]

View File

@@ -7,6 +7,7 @@
(ns app.util.import.parser
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.geom.matrix :as gmt]
[app.common.geom.point :as gpt]
[app.common.spec.interactions :as cti]
@@ -213,16 +214,29 @@
(reduce add-attrs node-attrs))
(= type :frame)
(let [;; The nodes with the "frame-background" class can have some anidation depending on the strokes they have
(let [;; Old .penpot files doesn't have "g" nodes. They have a clipPath reference as a node attribute
to-url #(dm/str "url(#" % ")")
frame-clip-rect-node (->> (find-all-nodes node :defs)
(mapcat #(find-all-nodes % :clipPath))
(filter #(= (to-url (:id (:attrs %))) (:clip-path node-attrs)))
(mapcat #(find-all-nodes % #{:rect :path}))
(first))
;; The nodes with the "frame-background" class can have some anidation depending on the strokes they have
g-nodes (find-all-nodes node :g)
defs-nodes (flatten (map #(find-all-nodes % :defs) g-nodes))
gg-nodes (flatten (map #(find-all-nodes % :g) g-nodes))
rect-nodes (flatten [[(find-all-nodes node :rect)]
(map #(find-all-nodes % #{:rect :path}) defs-nodes)
(map #(find-all-nodes % #{:rect :path}) g-nodes)
(map #(find-all-nodes % #{:rect :path}) gg-nodes)])
svg-node (d/seek #(= "frame-background" (get-in % [:attrs :class])) rect-nodes)]
(merge (add-attrs {} (:attrs svg-node)) node-attrs))
(merge
(add-attrs {} (:attrs frame-clip-rect-node))
(add-attrs {} (:attrs svg-node))
node-attrs))
(= type :svg-raw)
(let [svg-content (get-data node :penpot:svg-content)

View File

@@ -9,9 +9,11 @@
[app.common.data :as d]
[app.common.geom.point :as gpt]
[app.common.transit :as transit]
[app.main.fonts :as fonts]
[app.main.store :as st]
[app.util.dom :as dom]
[app.util.text-position-data :as tpd]))
[app.util.text-position-data :as tpd]
[promesa.core :as p]))
(defn parse-text-nodes
"Given a text node retrieves the rectangles for everyone of its paragraphs and its text."
@@ -27,6 +29,27 @@
(map parse-entry)
(tpd/parse-text-nodes parent-node text-node))))
(def load-promises (atom {}))
(defn load-font
[font]
(if (contains? @load-promises font)
(get @load-promises font)
(let [load-promise (dom/load-font font)]
(swap! load-promises assoc font load-promise)
load-promise)))
(defn resolve-font
[^js node]
(let [styles (js/getComputedStyle node)
font (.getPropertyValue styles "font")]
(if (dom/check-font? font)
(p/resolved font)
(let [font-id (.getPropertyValue styles "--font-id")]
(-> (fonts/ensure-loaded! font-id)
(p/then #(when (not (dom/check-font? font))
(load-font font))))))))
(defn calc-text-node-positions
[base-node viewport zoom]
@@ -58,22 +81,25 @@
:width (- (:x p2) (:x p1))
:height (- (:y p2) (:y p1)))))
text-nodes (dom/query-all base-node ".text-node, span[data-text]")]
(->> text-nodes
(mapcat
(fn [parent-node]
(let [direction (.-direction (js/getComputedStyle parent-node))]
(->> (.-childNodes parent-node)
(mapcat #(parse-text-nodes parent-node direction %))))))
(mapv #(update % :position translate-rect))))))
text-nodes (dom/query-all base-node ".text-node, span[data-text]")
load-fonts (->> text-nodes (map resolve-font))]
(-> (p/all load-fonts)
(p/then
(fn []
(->> text-nodes
(mapcat
(fn [parent-node]
(let [direction (.-direction (js/getComputedStyle parent-node))]
(->> (.-childNodes parent-node)
(mapcat #(parse-text-nodes parent-node direction %))))))
(mapv #(update % :position translate-rect)))))))))
(defn calc-position-data
[base-node]
(let [viewport (dom/get-element "render")
zoom (or (get-in @st/state [:workspace-local :zoom]) 1)]
(when (and (some? base-node) (some? viewport))
(let [text-data (calc-text-node-positions base-node viewport zoom)]
(p/let [text-data (calc-text-node-positions base-node viewport zoom)]
(when (d/not-empty? text-data)
(->> text-data
(mapv (fn [{:keys [node position text direction]}]

View File

@@ -125,7 +125,8 @@
match-criteria?
(fn [shape]
(and (not (:hidden shape))
(not (:blocked shape))
(or (= :frame (:type shape)) ;; We return frames even if blocked
(not (:blocked shape)))
(or (not frame-id) (= frame-id (:frame-id shape)))
(case (:type shape)
:frame include-frames?

View File

@@ -64,6 +64,9 @@
;; Disable thumbnail cache
:disable-thumbnail-cache
;; Disable frame thumbnails
:disable-frame-thumbnails
})
;; These events are excluded when we activate the :events flag

View File

@@ -539,7 +539,6 @@ msgstr "التسجيل معطل حاليا."
msgid "errors.terms-privacy-agreement-invalid"
msgstr "يجب أن تقبل شروط الخدمة وسياسة الخصوصية الخاصة بنا."
#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
msgid "errors.unexpected-error"
msgstr "حدث خطأ غير متوقع."
@@ -568,24 +567,6 @@ msgstr "ترغب في الكلام؟ تحدث معنا في Gitter"
msgid "feedback.description"
msgstr "وصف"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "اذهب إلى المناقشات"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "انضم إلى منتدى التواصل التعاوني لفريق Penpot."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"يمكنك طرح الأسئلة والإجابة عليها، إجراء محادثات مفتوحة، ومتابعة القرارات "
"التي تؤثر على المشروع."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "مناقشات الفريق"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "موضوع"

View File

@@ -729,24 +729,6 @@ msgstr "Voleu parlar? Xategeu amb nosaltres a Gitter"
msgid "feedback.description"
msgstr "Descripció"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Ves als debats"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Uniu-vos al fòrum col·laboratiu del Penpot."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"Podeu fer i respondre preguntes, tenir converses obertes i seguir les "
"decisions que afecten el projecte."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Debats de l'equip"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Tema"

View File

File diff suppressed because it is too large Load Diff

View File

@@ -480,24 +480,6 @@ msgstr "Νιώθετε σαν να μιλάτε; Συνομιλήστε μαζί
msgid "feedback.description"
msgstr "Περιγραφή"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Μετάβαση στις συζητήσεις"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Μπείτε στο συνεργατικό φόρουμ του Penpot"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"Μπορείτε να κάνετε και να απαντήσετε σε ερωτήσεις, να έχετε συνομιλίες "
"ανοιχτού τύπου και να συνεχίσετε να επηρεάζετε το έργο"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Ομαδικές συζητήσεις "
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Επιχείρηση"

View File

@@ -450,6 +450,14 @@ msgstr "+ New project"
msgid "dashboard.new-project-prefix"
msgstr "New Project"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-msg"
msgstr "Send me news, product updates and recommendations about Penpot."
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-title"
msgstr "Newsletter subscription"
#: src/app/main/ui/dashboard/search.cljs
msgid "dashboard.no-matches-for"
msgstr "No matches found for “%s“"
@@ -505,6 +513,10 @@ msgstr "Want to remove your account?"
msgid "dashboard.remove-shared"
msgstr "Remove as Shared Library"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.save-settings"
msgstr "Save settings"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.search-placeholder"
msgstr "Search…"
@@ -581,18 +593,6 @@ msgstr "Search results"
msgid "dashboard.type-something"
msgstr "Type to search results"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.save-settings"
msgstr "Save settings"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-title"
msgstr "Newsletter subscription"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-msg"
msgstr "Send me news, product updates and recommendations about Penpot."
#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs
msgid "dashboard.update-settings"
msgstr "Update settings"
@@ -674,6 +674,13 @@ msgstr "Authentication with google disabled on backend"
msgid "errors.invalid-color"
msgstr "Invalid color"
#: src/app/main/ui/auth/verify_token.cljs
msgid "errors.invite-invalid"
msgstr "Invite invalid"
msgid "errors.invite-invalid.info"
msgstr "This invite might be canceled or may be expired."
#: src/app/main/ui/auth/login.cljs
msgid "errors.ldap-disabled"
msgstr "LDAP authentication is disabled."
@@ -728,14 +735,6 @@ msgstr "Owner can't leave team, you must reassign the owner role."
msgid "errors.terms-privacy-agreement-invalid"
msgstr "You must accept our terms of service and privacy policy."
#: src/app/main/ui/auth/verify_token.cljs
msgid "errors.invite-invalid"
msgstr "Invite invalid"
msgid "errors.invite-invalid.info"
msgstr "This invite might be canceled or may be expired."
#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
msgid "errors.unexpected-error"
msgstr "An unexpected error occurred."
@@ -764,24 +763,6 @@ msgstr "Feeling like talking? Chat with us at Gitter"
msgid "feedback.description"
msgstr "Description"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Go to discussions"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Join Penpot team collaborative communication forum."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"You can ask and answer questions, have open-ended conversations, and follow "
"along on decisions affecting the project."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Team discussions"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Subject"
@@ -796,6 +777,18 @@ msgstr ""
msgid "feedback.title"
msgstr "Email"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.twitter-go-to"
msgstr "Go to Twitter"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.twitter-subtitle1"
msgstr "Here to help with your technical queries."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.twitter-title"
msgstr "Twitter support account"
#: src/app/main/ui/settings/password.cljs
msgid "generic.error"
msgstr "An error has occurred"
@@ -1786,6 +1779,36 @@ msgstr "project on github"
msgid "onboarding.contrib.title"
msgstr "Open Source Contributor?"
msgid "onboarding.newsletter.accept"
msgstr "Yes, subscribe"
msgid "onboarding.newsletter.acceptance-message"
msgstr ""
"Your subscription request has been sent, we will send you an email to "
"confirm it."
msgid "onboarding.newsletter.decline"
msgstr "No, thanks"
msgid "onboarding.newsletter.desc"
msgstr ""
"Subscribe to our newsletter to stay up to date with product development "
"progress and news."
msgid "onboarding.newsletter.policy"
msgstr "Privacy Policy."
msgid "onboarding.newsletter.privacy1"
msgstr "Because we care about privacy, here's our "
msgid "onboarding.newsletter.privacy2"
msgstr ""
"We will only send relevant emails to you. You can unsubscribe at any time "
"in your user profile or via the unsubscribe link in any of our newsletters."
msgid "onboarding.newsletter.title"
msgstr "Want to receive Penpot news?"
msgid "onboarding.slide.0.alt"
msgstr "Create designs"
@@ -1871,30 +1894,6 @@ msgstr ""
msgid "onboarding.welcome.title"
msgstr "Welcome to Penpot"
msgid "onboarding.newsletter.title"
msgstr "Want to receive Penpot news?"
msgid "onboarding.newsletter.desc"
msgstr "Subscribe to our newsletter to stay up to date with product development progress and news."
msgid "onboarding.newsletter.privacy1"
msgstr "Because we care about privacy, here's our "
msgid "onboarding.newsletter.policy"
msgstr "Privacy Policy."
msgid "onboarding.newsletter.privacy2"
msgstr "We will only send relevant emails to you. You can unsubscribe at any time in your user profile or via the unsubscribe link in any of our newsletters."
msgid "onboarding.newsletter.accept"
msgstr "Yes, subscribe"
msgid "onboarding.newsletter.decline"
msgstr "No, thanks"
msgid "onboarding.newsletter.acceptance-message"
msgstr "Your subscription request has been sent, we will send you an email to confirm it."
#: src/app/main/ui/auth/recovery.cljs
msgid "profile.recovery.go-to-login"
msgstr "Go to login"
@@ -2585,14 +2584,14 @@ msgstr[1] "Export %s elements"
msgid "workspace.options.export.suffix"
msgstr "Suffix"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object"
msgstr "Exporting…"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-complete"
msgstr "Export complete"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object"
msgstr "Exporting…"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object-error"
msgstr "Export failed"
@@ -3702,4 +3701,4 @@ msgid "workspace.updates.update"
msgstr "Update"
msgid "workspace.viewport.click-to-close-path"
msgstr "Click to close the path"
msgstr "Click to close the path"

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2022-03-21 13:56+0000\n"
"PO-Revision-Date: 2022-05-04 10:14+0000\n"
"Last-Translator: Ahmad HosseinBor <123hozeifeh@gmail.com>\n"
"Language-Team: Persian "
"<https://hosted.weblate.org/projects/penpot/frontend/fa/>\n"
@@ -9,7 +9,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.12-dev\n"
"X-Generator: Weblate 4.12.1\n"
#: src/app/main/ui/auth/register.cljs
msgid "auth.already-have-account"
@@ -33,6 +33,12 @@ msgstr "ایجاد حساب دمو"
msgid "auth.create-demo-profile"
msgstr "فقط می‌خواهید آن را امتحان کنید؟"
#: src/app/main/ui/auth/register.cljs
msgid "auth.demo-warning"
msgstr ""
"این یک سرویس آزمایشی است، برای کار واقعی استفاده نکنید، پروژه‌ها به صورت "
"دوره‌ای پاک می‌شوند."
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.email"
msgstr "ایمیل"
@@ -183,6 +189,9 @@ msgstr "لینک با موفقیت کپی شد"
msgid "common.share-link.link-deleted-success"
msgstr "لینک با موفقیت حذف شد"
msgid "common.share-link.permissions-can-access"
msgstr "می‌تواند دسترسی داشته باشد"
msgid "common.share-link.permissions-can-view"
msgstr "می‌تواند مشاهده کند"
@@ -192,6 +201,9 @@ msgstr "هر کسی که لینک داشته باشد دسترسی خواهد د
msgid "common.share-link.remove-link"
msgstr "حذف لینک"
msgid "common.share-link.title"
msgstr "اشتراک‌گذاری پروتوتایپ‌ها"
msgid "common.share-link.view-all-pages"
msgstr "تمام صفحات"
@@ -236,6 +248,17 @@ msgstr "تکثیر"
msgid "dashboard.empty-files"
msgstr "شما هنوز هیچ فایلی در اینجا ندارید"
msgid "dashboard.export-frames"
msgstr "خروجی آرت‌بوردها به پی‌دی‌اف..."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-frames.title"
msgstr "اکسپورت به پی‌دی‌اف"
#: src/app/main/ui/workspace/header.cljs
msgid "dashboard.export-shapes"
msgstr "اکسپورت"
msgid "dashboard.options"
msgstr "گزینه‌ها"
@@ -275,6 +298,10 @@ msgstr "موضوع"
msgid "feedback.title"
msgstr "ایمیل"
#: src/app/main/ui/handoff/attributes/blur.cljs
msgid "handoff.attributes.blur"
msgstr "محو"
#: src/app/main/ui/handoff/attributes/blur.cljs
msgid "handoff.attributes.blur.value"
msgstr "مقدار"
@@ -315,6 +342,10 @@ msgstr "ارتفاع"
msgid "handoff.attributes.layout.left"
msgstr "چپ"
#: src/app/main/ui/handoff/attributes/layout.cljs, src/app/main/ui/handoff/attributes/layout.cljs
msgid "handoff.attributes.layout.radius"
msgstr "گردی"
#: src/app/main/ui/handoff/attributes/layout.cljs
msgid "handoff.attributes.layout.rotation"
msgstr "چرخش"
@@ -359,6 +390,12 @@ msgstr "داخل"
msgid "handoff.attributes.stroke.alignment.outer"
msgstr "بیرون"
msgid "handoff.attributes.stroke.style.dotted"
msgstr "خط‌چین"
msgid "handoff.attributes.stroke.style.mixed"
msgstr "‏مخلوط"
msgid "handoff.attributes.stroke.style.none"
msgstr "هیچ‌یک"
@@ -435,6 +472,9 @@ msgstr "لغو"
msgid "labels.centered"
msgstr "مرکز"
msgid "labels.close"
msgstr "بستن"
#: src/app/main/ui/dashboard/comments.cljs
msgid "labels.comments"
msgstr "نظرات"
@@ -476,6 +516,9 @@ msgstr "ویرایشگر"
msgid "labels.email"
msgstr "ایمیل"
msgid "labels.export"
msgstr "اکسپورت"
msgid "labels.font-variants"
msgstr "استایل‌ها"
@@ -507,6 +550,9 @@ msgstr "اعضا"
msgid "labels.name"
msgstr "نام"
msgid "labels.next"
msgstr "بعدی"
#: src/app/main/ui/static.cljs
msgid "labels.not-found.main-message"
msgstr "اوپس!"
@@ -514,6 +560,10 @@ msgstr "اوپس!"
msgid "labels.or"
msgstr "یا"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
msgid "labels.owner"
msgstr "مالک"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.password"
msgstr "کلمه‌عبور"
@@ -564,6 +614,9 @@ msgstr "درحال ارسال…"
msgid "labels.settings"
msgstr "تنظیمات"
msgid "labels.skip"
msgstr "رد"
msgid "labels.start"
msgstr "شروع"
@@ -584,6 +637,22 @@ msgstr "بیننده"
msgid "labels.workspace"
msgstr "فضای‌کاری"
msgid "modals.delete-font-variant.message"
msgstr ""
"آیا مطمئن هستید که می‌خواهید این سبک فونت را حذف کنید؟ اگر در یک فایل "
"استفاده شود، بارگیری نمی‌شود."
msgid "modals.delete-font.message"
msgstr ""
"آیا مطمئن هستید که می‌خواهید این فونت را حذف کنید؟ اگر در یک فایل استفاده "
"شود، بارگیری نمی‌شود."
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "modals.delete-team-confirm.message"
msgstr ""
"آیا مطمئنید که می‌خواهید این تیم را حذف کنید؟ تمام پروژه‌ها و فایل‌های "
"مرتبط با تیم به طور دائم حذف خواهند شد."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.accept"
msgstr "به‌روزرسانی"
@@ -595,6 +664,14 @@ msgstr "لغو"
msgid "onboarding.welcome.alt"
msgstr "Penpot"
#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs
msgid "settings.multiple"
msgstr "مخلوط"
#: src/app/main/ui/viewer/header.cljs
msgid "viewer.header.sitemap"
msgstr "نقشه سایت"
msgid "workspace.assets.box-filter-graphics"
msgstr "گرافیک"
@@ -646,6 +723,10 @@ msgstr "فونت"
msgid "workspace.assets.typography.font-size"
msgstr "اندازه"
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.ungroup"
msgstr "حذف گروه"
#: src/app/main/ui/workspace/header.cljs
msgid "workspace.header.menu.option.edit"
msgstr "ویرایش"
@@ -735,6 +816,18 @@ msgstr "بالا"
msgid "workspace.options.design"
msgstr "طرح"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.export"
msgstr "اکسپورت"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs
msgid "workspace.options.export.suffix"
msgstr "پسوند"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object"
msgstr "درحال گرفتن خروجی…"
#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs
msgid "workspace.options.fill"
msgstr "پر"
@@ -784,4 +877,296 @@ msgstr "چپ"
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
msgid "workspace.options.grid.params.type.right"
msgstr "راست"
msgstr "راست"
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
msgid "workspace.options.grid.params.type.top"
msgstr "بالا"
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
msgid "workspace.options.grid.params.width"
msgstr "پهنا"
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
msgid "workspace.options.grid.row"
msgstr "ردیف‌ها"
#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
msgid "workspace.options.grid.square"
msgstr "مربع"
msgid "workspace.options.height"
msgstr "بلندی"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-action"
msgstr "عمل"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-animation"
msgstr "انیمیشن"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-animation-none"
msgstr "هیچ‌یک"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-animation-slide"
msgstr "اسلاید"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-delay"
msgstr "تاخیر"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-easing"
msgstr "تسهیل"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-easing-ease"
msgstr "سهولت"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-easing-linear"
msgstr "خطی"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-in"
msgstr "در"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-ms"
msgstr "م‌ث"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-out"
msgstr "خارج"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-pos-center"
msgstr "مرکز"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-pos-manual"
msgstr "دستی"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-position"
msgstr "موقعیت"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-self"
msgstr "خود"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.interaction-url"
msgstr "URL"
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs
msgid "workspace.options.layer-options.blend-mode.color"
msgstr "رنگ"
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs
msgid "workspace.options.layer-options.blend-mode.difference"
msgstr "تفاوت"
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs
msgid "workspace.options.layer-options.blend-mode.normal"
msgstr "معمولی"
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs
msgid "workspace.options.layer-options.blend-mode.saturation"
msgstr "اشباع"
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs
msgid "workspace.options.layer-options.blend-mode.screen"
msgstr "صفحه نمایش"
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs
msgid "workspace.options.layer-options.title"
msgstr "لایه"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.position"
msgstr "موقعیت"
#: src/app/main/ui/workspace/sidebar/options.cljs
msgid "workspace.options.prototype"
msgstr "پروتوتایپ"
msgid "workspace.options.recent-fonts"
msgstr "اخیر"
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.rotation"
msgstr "چرخش"
#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs
msgid "workspace.options.shadow-options.blur"
msgstr "محو"
#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs
msgid "workspace.options.shadow-options.offsetx"
msgstr "X"
#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs
msgid "workspace.options.shadow-options.offsety"
msgstr "Y"
#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs
msgid "workspace.options.shadow-options.title"
msgstr "سایه"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.size"
msgstr "اندازه"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke-cap.none"
msgstr "هیچ‌یک"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke-cap.round"
msgstr "گردی"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke-cap.square"
msgstr "مربع"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke.center"
msgstr "مرکز"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke.dashed"
msgstr "نقطه‌چین"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke.dotted"
msgstr "خط‌چین"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke.inner"
msgstr "داخل"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke.mixed"
msgstr "مخلوط"
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs
msgid "workspace.options.stroke.outer"
msgstr "خارج"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs
msgid "workspace.options.text-options.direction-ltr"
msgstr "LTR"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs
msgid "workspace.options.text-options.direction-rtl"
msgstr "RTL"
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
msgid "workspace.options.text-options.google"
msgstr "گوگل"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs
msgid "workspace.options.text-options.grow-fixed"
msgstr "درست شد"
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
msgid "workspace.options.text-options.lowercase"
msgstr "حروف کوچک"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
msgid "workspace.options.text-options.none"
msgstr "هیچ‌یک"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs
msgid "workspace.options.text-options.title"
msgstr "متن"
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
msgid "workspace.options.text-options.uppercase"
msgstr "حروف بزرگ"
msgid "workspace.options.width"
msgstr "پهنا"
msgid "workspace.options.x"
msgstr "X"
msgid "workspace.options.y"
msgstr "Y"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.copy"
msgstr "کپی"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.cut"
msgstr "برش"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.delete"
msgstr "حذف"
msgid "workspace.shape.menu.difference"
msgstr "تفاوت"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.duplicate"
msgstr "تکرار"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.edit"
msgstr "ویزایش"
msgid "workspace.shape.menu.flatten"
msgstr "صاف"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.group"
msgstr "گروه"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.hide"
msgstr "مخفی"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.lock"
msgstr "قفل"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.mask"
msgstr "ماسک"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.paste"
msgstr "چسباندن"
msgid "workspace.shape.menu.path"
msgstr "مسیر"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.show"
msgstr "نمایش"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.ungroup"
msgstr "حذف گروه"
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.unlock"
msgstr "بازکردن قفل"
#: src/app/main/ui/workspace/left_toolbar.cljs
msgid "workspace.sidebar.layers"
msgstr "لایه‌ها"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs
msgid "workspace.sidebar.sitemap"
msgstr "صفحات"
#: src/app/main/ui/workspace/header.cljs
msgid "workspace.sitemap"
msgstr "نقشه سایت"

View File

@@ -36,10 +36,11 @@ msgstr "Vous voulez juste essayer?"
#: src/app/main/ui/auth/register.cljs
msgid "auth.demo-warning"
msgstr ""
"Il sagit dun service DEMO, NE PAS UTILISER pour un travail réel, les "
"projets seront périodiquement supprimés."
"Il sagit dun service de DÉMONSTRATION, NE L'UTILISEZ PAS pour du vrai "
"travail, les projets seront périodiquement supprimés."
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
#: src/app/main/ui/auth/register.cljs,
#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.email"
msgstr "Adresse email"
@@ -65,11 +66,11 @@ msgstr "Ravi de vous revoir!"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.login-with-github-submit"
msgstr "Se connecter via Github"
msgstr "Se connecter via GitHub"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.login-with-gitlab-submit"
msgstr "Se connecter via Gitlab"
msgstr "Se connecter via GitLab"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-with-google-submit"
@@ -212,7 +213,8 @@ msgstr "Seulement cette page"
msgid "common.share-link.view-selected-pages"
msgstr "Pages sélectionnées"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.add-shared"
msgstr "Ajouter une Bibliothèque Partagée"
@@ -239,7 +241,8 @@ msgstr "Supprimer léquipe"
msgid "dashboard.draft-title"
msgstr "Brouillon"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.duplicate"
msgstr "Dupliquer"
@@ -254,9 +257,17 @@ msgstr "Vous navez encore aucun fichier ici"
msgid "dashboard.export-frames"
msgstr "Exporter les plans de travail comme PDF..."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-frames.title"
msgstr "Exporter en PDF"
msgid "dashboard.export-multi"
msgstr "Exporter %s fichiers"
#: src/app/main/ui/workspace/header.cljs
msgid "dashboard.export-shapes"
msgstr "Exporter"
msgid "dashboard.export-single"
msgstr "Exporter le fichier"
@@ -276,7 +287,6 @@ msgstr "Police supprimée"
msgid "dashboard.fonts.empty-placeholder"
msgstr "Vous n'avez installé aucune police personnalisée."
#, markdown
msgid "dashboard.fonts.hero-text1"
msgstr ""
"Toute police Web que vous téléchargez sera ajoutée à la liste de polices de "
@@ -285,7 +295,6 @@ msgstr ""
"**une seule famille de polices**. Vous pouvez télécharger les polices au "
"formats suivants : **TTF, OTF et WOFF** (un seul format est nécessaire)."
#, markdown
msgid "dashboard.fonts.hero-text2"
msgstr ""
"Ne téléchargez que des polices que vous possédez ou dont la license vous "
@@ -301,7 +310,8 @@ msgstr "Importer fichiers"
msgid "dashboard.invite-profile"
msgstr "Inviter dans léquipe"
#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.leave-team"
msgstr "Quitter léquipe"
@@ -316,7 +326,8 @@ msgstr "chargement de vos fichiers…"
msgid "dashboard.loading-fonts"
msgstr "chargement de vos polices…"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.move-to"
msgstr "Déplacer vers"
@@ -328,7 +339,8 @@ msgstr "Déplacer %s fichiers vers"
msgid "dashboard.move-to-other-team"
msgstr "Déplacer vers une autre équipe"
#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/files.cljs
msgid "dashboard.new-file"
msgstr "+ Nouveau fichier"
@@ -395,7 +407,8 @@ msgstr "Promouvoir propriétaire"
msgid "dashboard.remove-account"
msgstr "Vous souhaitez supprimer votre compte?"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.remove-shared"
msgstr "Retirer en tant que Bibliothèque Partagée"
@@ -435,7 +448,8 @@ msgstr "Votre fichier a été dupliqué avec succès"
msgid "dashboard.success-duplicate-project"
msgstr "Votre projet a été dupliqué avec succès"
#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.success-move-file"
msgstr "Votre fichier a été déplacé avec succès"
@@ -475,7 +489,9 @@ msgstr "Résultats de recherche"
msgid "dashboard.type-something"
msgstr "Écrivez pour rechercher"
#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs
#: src/app/main/ui/settings/profile.cljs,
#: src/app/main/ui/settings/password.cljs,
#: src/app/main/ui/settings/options.cljs
msgid "dashboard.update-settings"
msgstr "Mettre à jour les paramètres"
@@ -491,7 +507,11 @@ msgstr "Email"
msgid "dashboard.your-name"
msgstr "Votre nom complet"
#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs,
#: src/app/main/ui/dashboard/libraries.cljs,
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.your-penpot"
msgstr "Votre Penpot"
@@ -515,7 +535,8 @@ msgstr "Mise à jour: %s"
msgid "errors.clipboard-not-implemented"
msgstr "Votre navigateur ne peut pas effectuer cette opération"
#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs
#: src/app/main/ui/auth/verify_token.cljs,
#: src/app/main/ui/settings/change_email.cljs
msgid "errors.email-already-exists"
msgstr "Adresse email déjà utilisée"
@@ -523,7 +544,10 @@ msgstr "Adresse email déjà utilisée"
msgid "errors.email-already-validated"
msgstr "Adresse email déjà validée."
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/auth/register.cljs,
#: src/app/main/ui/auth/recovery_request.cljs,
#: src/app/main/ui/settings/change_email.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "errors.email-has-permanent-bounces"
msgstr "L'adresse e-mail « %s » a un taux de rebond trop élevé."
@@ -531,7 +555,8 @@ msgstr "L'adresse e-mail « %s » a un taux de rebond trop élevé."
msgid "errors.email-invalid-confirmation"
msgstr "Ladresse email de confirmation doit correspondre"
#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/auth/verify_token.cljs,
#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs
msgid "errors.generic"
msgstr "Un problème sest produit."
@@ -560,7 +585,7 @@ msgstr ""
"Il semble que le contenu de limage ne correspond pas à lextension de "
"fichier."
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
msgid "errors.media-type-not-allowed"
msgstr "Limage ne semble pas être valide."
@@ -581,7 +606,9 @@ msgstr "Le mot de passe de confirmation doit correspondre"
msgid "errors.password-too-short"
msgstr "Le mot de passe doit contenir au moins 8 caractères"
#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/auth/recovery_request.cljs,
#: src/app/main/ui/settings/change_email.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "errors.profile-is-muted"
msgstr ""
"L'adresse e-mail de votre profil est ignorée (signalée comme spam ou taux "
@@ -596,7 +623,13 @@ msgstr ""
"Vous devez accepter nos conditions générales d'utilisation et notre "
"politique de confidentialité."
#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#: src/app/main/ui/auth/verify_token.cljs
msgid "errors.token-expired"
msgstr "Jeton expiré"
#: src/app/main/data/media.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs
msgid "errors.unexpected-error"
msgstr "Une erreur inattendue sest produite"
@@ -624,24 +657,6 @@ msgstr "Envie de parler? Discutez avec nous sur Gitter"
msgid "feedback.description"
msgstr "Description"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Aller aux discussions"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Rejoignez le forum de communication collaborative de l'équipe Penpot."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"Vous pouvez poser des questions et y répondre, avoir des conversations "
"ouvertes et suivre les décisions affectant le projet."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Discussions en équipe"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Sujet"
@@ -709,7 +724,8 @@ msgstr "Hauteur"
msgid "handoff.attributes.layout.left"
msgstr "Gauche"
#: src/app/main/ui/handoff/attributes/layout.cljs, src/app/main/ui/handoff/attributes/layout.cljs
#: src/app/main/ui/handoff/attributes/layout.cljs,
#: src/app/main/ui/handoff/attributes/layout.cljs
msgid "handoff.attributes.layout.radius"
msgstr "Rayon"
@@ -749,15 +765,12 @@ msgstr "S"
msgid "handoff.attributes.stroke"
msgstr "Contour"
#, permanent
msgid "handoff.attributes.stroke.alignment.center"
msgstr "Centre"
#, permanent
msgid "handoff.attributes.stroke.alignment.inner"
msgstr "Intérieur"
#, permanent
msgid "handoff.attributes.stroke.alignment.outer"
msgstr "Extérieur"
@@ -878,7 +891,7 @@ msgstr "Accepter"
msgid "labels.add-custom-font"
msgstr "Ajouter police personnalisée"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
msgid "labels.admin"
msgstr "Administration"
@@ -918,7 +931,8 @@ msgstr "Contenu"
msgid "labels.create"
msgstr "Créer"
#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs
#: src/app/main/ui/dashboard/team_form.cljs,
#: src/app/main/ui/dashboard/team_form.cljs
msgid "labels.create-team"
msgstr "Créer nouvelle équipe"
@@ -933,7 +947,8 @@ msgstr "Polices personnalisées"
msgid "labels.dashboard"
msgstr "Tableau de bord"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.delete"
msgstr "Supprimer"
@@ -949,7 +964,10 @@ msgstr "Supprimer le fil"
msgid "labels.delete-multi-files"
msgstr "Supprimer %s fichiers"
#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/files.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.drafts"
msgstr "Brouillons"
@@ -957,7 +975,7 @@ msgstr "Brouillons"
msgid "labels.edit"
msgstr "Modifier"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
msgid "labels.editor"
msgstr "Éditeur"
@@ -985,7 +1003,9 @@ msgstr "Styles"
msgid "labels.fonts"
msgstr "Polices"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.give-feedback"
msgstr "Donnez votre avis"
@@ -1026,7 +1046,7 @@ msgstr "Se déconnecter"
msgid "labels.manage-fonts"
msgstr "Gérer les polices"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.members"
msgstr "Membres"
@@ -1038,7 +1058,8 @@ msgstr "Nom"
msgid "labels.new-password"
msgstr "Nouveau mot de passe"
#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs
#: src/app/main/ui/workspace/comments.cljs,
#: src/app/main/ui/dashboard/comments.cljs
msgid "labels.no-comments-available"
msgstr "Vous navez aucune notification de commentaire en attente"
@@ -1088,7 +1109,8 @@ msgstr "ou"
msgid "labels.owner"
msgstr "Propriétaire"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.password"
msgstr "Mot de passe"
@@ -1096,7 +1118,8 @@ msgstr "Mot de passe"
msgid "labels.permissions"
msgstr "Permissions"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.profile"
msgstr "Profil"
@@ -1111,11 +1134,14 @@ msgstr "Récent"
msgid "labels.release-notes"
msgstr "Notes de version"
#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/workspace/libraries.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "labels.remove"
msgstr "Retirer"
#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.rename"
msgstr "Renommer"
@@ -1123,7 +1149,7 @@ msgstr "Renommer"
msgid "labels.rename-team"
msgstr "Renommer l'équipe"
#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
msgid "labels.retry"
msgstr "Réessayer"
@@ -1153,11 +1179,12 @@ msgstr "Nous sommes en maintenance planifiée de nos systèmes."
msgid "labels.service-unavailable.main-message"
msgstr "Service non disponible"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.settings"
msgstr "Configuration"
#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs
#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs
msgid "labels.share-prototype"
msgstr "Partager le prototype"
@@ -1202,22 +1229,25 @@ msgstr "Spectateur"
msgid "labels.write-new-comment"
msgstr "Écrire un nouveau commentaire"
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
msgid "media.loading"
msgstr "Chargement de limage…"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.accept"
msgstr "Ajouter comme Bibliothèque Partagée"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.hint"
msgstr ""
"Une fois ajoutées en tant que Bibliothèque Partagée, les ressources de "
"cette bibliothèque de fichiers seront disponibles pour être utilisées parmi "
"le reste de vos fichiers."
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.message"
msgstr "Ajouter « %s» comme Bibliothèque Partagée"
@@ -1418,35 +1448,42 @@ msgstr "Êtesvous sûr de vouloir promouvoir cette personne propriétaire?
msgid "modals.promote-owner-confirm.title"
msgstr "Promouvoir propriétaire"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.accept"
msgstr "Supprimer en tant que Bibliothèque Partagée"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.hint"
msgstr ""
"Une fois supprimée en tant que Bibliothèque Partagée, la Bibliothèque de ce "
"fichier ne pourra plus être utilisée par le reste de vos fichiers."
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.message"
msgstr "Retirer « %s» en tant que Bibliothèque Partagée"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.accept"
msgstr "Actualiser le composant"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.cancel"
msgstr "Annuler"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.hint"
msgstr ""
"Vous êtes sur le point de mettre à jour le composant dune Bibliothèque "
"Partagée. Cela peut affecter dautres fichiers qui lutilisent."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.message"
msgstr "Actualiser le composant dune bibliothèque"
@@ -1472,7 +1509,12 @@ msgstr "Email de vérification envoyé à %s. Vérifiez votre email!"
msgid "profile.recovery.go-to-login"
msgstr "Aller à la page de connexion"
#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs
#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs
msgid "settings.multiple"
msgstr "Divers"
@@ -1639,11 +1681,13 @@ msgstr "Toutes"
msgid "workspace.assets.box-filter-graphics"
msgstr "Graphiques"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.colors"
msgstr "Couleurs"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.components"
msgstr "Composants"
@@ -1657,15 +1701,19 @@ msgstr ""
"Vos éléments seront automatiquement nommées comme tels : « nom du groupe / "
"nom de l'élément »"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.delete"
msgstr "Supprimer"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.duplicate"
msgstr "Dupliquer"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.edit"
msgstr "Modifier"
@@ -1673,7 +1721,8 @@ msgstr "Modifier"
msgid "workspace.assets.file-library"
msgstr "Bibliothèque du fichier"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.graphics"
msgstr "Graphiques"
@@ -1693,7 +1742,9 @@ msgstr "Bibliothèques"
msgid "workspace.assets.not-found"
msgstr "Aucune ressource trouvée"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.rename"
msgstr "Renommer"
@@ -1715,7 +1766,8 @@ msgstr[1] "%s éléments sélectionnés"
msgid "workspace.assets.shared"
msgstr "PARTAGÉ"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.typography"
msgstr "Typographies"
@@ -1743,7 +1795,9 @@ msgstr "Interlettrage"
msgid "workspace.assets.typography.line-height"
msgstr "Interlignage"
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/handoff/attributes/text.cljs, src/app/main/ui/handoff/attributes/text.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs,
#: src/app/main/ui/handoff/attributes/text.cljs,
#: src/app/main/ui/handoff/attributes/text.cljs
msgid "workspace.assets.typography.sample"
msgstr "Ag"
@@ -1755,11 +1809,13 @@ msgstr "Transformer le texte"
msgid "workspace.assets.ungroup"
msgstr "Dissocier"
#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs
#: src/app/main/data/workspace/libraries.cljs,
#: src/app/main/ui/components/color_bullet.cljs
msgid "workspace.gradients.linear"
msgstr "Dégradé linéaire"
#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs
#: src/app/main/data/workspace/libraries.cljs,
#: src/app/main/ui/components/color_bullet.cljs
msgid "workspace.gradients.radial"
msgstr "Dégradé radial"
@@ -1863,11 +1919,13 @@ msgstr "%s couleurs"
msgid "workspace.libraries.colors.big-thumbnails"
msgstr "Grandes vignettes"
#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs
#: src/app/main/ui/workspace/colorpicker/libraries.cljs,
#: src/app/main/ui/workspace/colorpalette.cljs
msgid "workspace.libraries.colors.file-library"
msgstr "Bibliothèque du fichier"
#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs
#: src/app/main/ui/workspace/colorpicker/libraries.cljs,
#: src/app/main/ui/workspace/colorpalette.cljs
msgid "workspace.libraries.colors.recent-colors"
msgstr "Couleurs récentes"
@@ -2025,11 +2083,13 @@ msgstr "Haut & bas"
msgid "workspace.options.design"
msgstr "Conception"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.export"
msgstr "Export"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.export-object"
msgstr "Exporter la forme"
@@ -2037,7 +2097,8 @@ msgstr "Exporter la forme"
msgid "workspace.options.export.suffix"
msgstr "Suffixe"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.exporting-object"
msgstr "Exportation…"
@@ -2213,7 +2274,8 @@ msgstr "Grouper les calques"
msgid "workspace.options.layer-options.title.multiple"
msgstr "Calques sélectionnés"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.position"
msgstr "Position"
@@ -2290,7 +2352,8 @@ msgstr "Ombre de groupe"
msgid "workspace.options.shadow-options.title.multiple"
msgstr "Ombres de la sélection"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.size"
msgstr "Taille"
@@ -2397,7 +2460,8 @@ msgstr "Interlignage"
msgid "workspace.options.text-options.lowercase"
msgstr "Minuscule"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
msgid "workspace.options.text-options.none"
msgstr "Aucune"
@@ -2499,7 +2563,9 @@ msgstr "Couper"
msgid "workspace.shape.menu.delete"
msgstr "Supprimer"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.detach-instance"
msgstr "Détacher linstance"
@@ -2527,7 +2593,8 @@ msgstr "Avancer"
msgid "workspace.shape.menu.front"
msgstr "Amener au premier plan"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.go-main"
msgstr "Aller au fichier du composant principal"
@@ -2543,15 +2610,19 @@ msgstr "Masquer"
msgid "workspace.shape.menu.lock"
msgstr "Bloquer"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.mask"
msgstr "Masque"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.paste"
msgstr "Coller"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.reset-overrides"
msgstr "Annuler les modifications"
@@ -2559,7 +2630,8 @@ msgstr "Annuler les modifications"
msgid "workspace.shape.menu.show"
msgstr "Montrer"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.show-main"
msgstr "Afficher le composant principal"
@@ -2575,7 +2647,9 @@ msgstr "Débloquer"
msgid "workspace.shape.menu.unmask"
msgstr "Supprimer le masque"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.update-main"
msgstr "Actualiser le composant principal"
@@ -2587,7 +2661,8 @@ msgstr "Historique (%s)"
msgid "workspace.sidebar.layers"
msgstr "Calques"
#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs,
#: src/app/main/ui/handoff/attributes/svg.cljs
msgid "workspace.sidebar.options.svg-attrs.title"
msgstr "Attributs SVG importés"

View File

@@ -36,7 +36,8 @@ msgstr "מעניין אותך רק להתנסות?"
msgid "auth.demo-warning"
msgstr "זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם."
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
#: src/app/main/ui/auth/register.cljs,
#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.email"
msgstr "דוא״ל"
@@ -205,7 +206,8 @@ msgstr "רק העמוד הזה"
msgid "common.share-link.view-selected-pages"
msgstr "עמודים נבחרים"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.add-shared"
msgstr "הוספת ספריה משותפת"
@@ -232,7 +234,8 @@ msgstr "מחיקת צוות"
msgid "dashboard.draft-title"
msgstr "טיוטה"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.duplicate"
msgstr "שכפול"
@@ -245,7 +248,6 @@ msgid "dashboard.empty-files"
msgstr "עדיין אין לך כאן קבצים"
#: src/app/main/ui/dashboard/grid.cljs
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
"עדיין אין כאן קבצים. כדי לנסות כמה תבניות ניתן לגשת אל [אזור הספריות "
@@ -257,6 +259,30 @@ msgstr "ייצוא לוחות אומנות ל־PDF…"
msgid "dashboard.export-multi"
msgstr "ייצוא קובצי %s של Penpot"
#: src/app/main/ui/export.cljs
msgid "dashboard.export-multiple.selected"
msgstr "נבחרו %s מתוך %s רכיבים"
#: src/app/main/ui/workspace/header.cljs
msgid "dashboard.export-shapes"
msgstr "ייצוא"
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.how-to"
msgstr "אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.how-to-link"
msgstr "מידע על הגדרות ייצוא ב־Penpot."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.no-elements"
msgstr "אין רכיבים עם הגדרות ייצוא."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.title"
msgstr "ייצוא הבחירה"
msgid "dashboard.export-single"
msgstr "ייצוא קובץ Penpot"
@@ -307,7 +333,6 @@ msgstr[1] "נוספו 2 גופנים"
msgstr[2] "נוספו %s גופנים"
msgstr[3] "נוספו %s גופנים"
#, markdown
msgid "dashboard.fonts.hero-text1"
msgstr ""
"כל גופן דפדפן שיועלה כאן יתווסף לרשימת משפחת הגופנים שזמין במאפייני הטקסט "
@@ -315,7 +340,6 @@ msgstr ""
"גופנים יחידה**. ניתן להעלות גופנים מהסוגים הבאים: **TTF, OTF ו־WOFF** (אחד "
"הסוגים יספיק)."
#, markdown
msgid "dashboard.fonts.hero-text2"
msgstr ""
"עליך להעלות גופנים בבעלותך או שיש לך רישיון להשתמש בהם ב־Penpot. ניתן למצוא "
@@ -367,7 +391,8 @@ msgstr "נשלח קובץ: %s"
msgid "dashboard.invite-profile"
msgstr "הזמנה לצוות"
#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.leave-team"
msgstr "עזיבת הצוות"
@@ -382,7 +407,8 @@ msgstr "הקבצים שלך נטענים…"
msgid "dashboard.loading-fonts"
msgstr "הגופנים שלך נטענים…"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.move-to"
msgstr "העברה אל"
@@ -394,7 +420,8 @@ msgstr "העברה של %s קבצים אל"
msgid "dashboard.move-to-other-team"
msgstr "העברה לצוות אחר"
#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/files.cljs
msgid "dashboard.new-file"
msgstr "+ קובץ חדש"
@@ -410,6 +437,14 @@ msgstr "+ מיזם חדש"
msgid "dashboard.new-project-prefix"
msgstr "מיזם חדש"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-msg"
msgstr "לשלוח לי חדשות, עדכונים על המוצר והמלצות על Penpot."
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-title"
msgstr "מינוי לרשימת הדיוור"
#: src/app/main/ui/dashboard/search.cljs
msgid "dashboard.no-matches-for"
msgstr "לא נמצאו תוצאות לחיפוש אחר „%s”"
@@ -461,10 +496,15 @@ msgstr "קידום לבעלות"
msgid "dashboard.remove-account"
msgstr "להסיר את החשבון שלך?"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.remove-shared"
msgstr "הסרה כספריה משותפת"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.save-settings"
msgstr "שמירת ההגדרות"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.search-placeholder"
msgstr "חיפוש…"
@@ -501,7 +541,8 @@ msgstr "הקובץ שלך שוכפל בהצלחה"
msgid "dashboard.success-duplicate-project"
msgstr "המיזם שלך שוכפל בהצלחה"
#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.success-move-file"
msgstr "הקובץ שלך הועבר בהצלחה"
@@ -541,7 +582,9 @@ msgstr "תוצאות חיפוש"
msgid "dashboard.type-something"
msgstr "נא להקליד כדי לחפש"
#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs
#: src/app/main/ui/settings/profile.cljs,
#: src/app/main/ui/settings/password.cljs,
#: src/app/main/ui/settings/options.cljs
msgid "dashboard.update-settings"
msgstr "עדכון הגדרות"
@@ -557,7 +600,11 @@ msgstr "דוא״ל"
msgid "dashboard.your-name"
msgstr "שמך"
#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs,
#: src/app/main/ui/dashboard/libraries.cljs,
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.your-penpot"
msgstr "ה־Penpot שלך"
@@ -588,7 +635,8 @@ msgstr "נראה שלא עברת אימות או שתוקף ההפעלה פג."
msgid "errors.clipboard-not-implemented"
msgstr "הדפדפן שלך לא יכול לבצע את הפעולה הזאת"
#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs
#: src/app/main/ui/auth/verify_token.cljs,
#: src/app/main/ui/settings/change_email.cljs
msgid "errors.email-already-exists"
msgstr "כתובת הדוא״ל כבר בשימוש"
@@ -599,7 +647,10 @@ msgstr "כתובת הדוא״ל כבר אומתה."
msgid "errors.email-as-password"
msgstr "אין לך אפשרות להשתמש בכתובת הדוא״ל שלך כסיסמה"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/auth/register.cljs,
#: src/app/main/ui/auth/recovery_request.cljs,
#: src/app/main/ui/settings/change_email.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "errors.email-has-permanent-bounces"
msgstr "לכתובת הדוא״ל „%s” יש יותר מדי דוחות החזרה קבועים."
@@ -607,6 +658,9 @@ msgstr "לכתובת הדוא״ל „%s” יש יותר מדי דוחות הח
msgid "errors.email-invalid-confirmation"
msgstr "כתובת הדוא״ל לאימות חייבת להיות תואמת"
msgid "errors.email-spam-or-permanent-bounces"
msgstr "כתובת הדוא״ל „%s” דווחה כספאם או שההודעות תוקפצנה לצמיתות."
#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs
msgid "errors.generic"
msgstr "קרה משהו לא טוב."
@@ -634,7 +688,7 @@ msgstr "התמונה גדולה מכדי להוסיף אותה (חייבת לה
msgid "errors.media-type-mismatch"
msgstr "נראה כי תוכן התמונה לא תואם לסיומת הקובץ."
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
msgid "errors.media-type-not-allowed"
msgstr "נראה כי זאת תמונה שגויה."
@@ -653,7 +707,9 @@ msgstr "סיסמת האימות חייבת להיות תואמת"
msgid "errors.password-too-short"
msgstr "הסיסמה חייבת להיות באורך 8 תווים לפחות"
#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/auth/recovery_request.cljs,
#: src/app/main/ui/settings/change_email.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "errors.profile-is-muted"
msgstr "הודעות הדוא״ל לפרופיל שלך מושתקות (דיווחי דואר זבל או הרבה החזרות)."
@@ -673,7 +729,13 @@ msgstr "הבעלים לא יכולים לעזוב את הקבוצה, עליך ל
msgid "errors.terms-privacy-agreement-invalid"
msgstr "עליך לקבל את תנאי השירות ואת מדיניות הפרטיות."
#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#: src/app/main/ui/auth/verify_token.cljs
msgid "errors.token-expired"
msgstr "תוקף האסימון פג"
#: src/app/main/data/media.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs
msgid "errors.unexpected-error"
msgstr "אירעה שגיאה בלתי צפויה."
@@ -701,24 +763,6 @@ msgstr "מעניין אותך לדבר? מזמינים אותו ל־Gitter"
msgid "feedback.description"
msgstr "תיאור"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "מעבר לדיונים"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "מזמינים אותך להצטרף לפורום התקשורת של Penpot."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"ניתן לשאול ולענות על שאלות, לנהל דיונים פתוחים ולעקוב אחר החלטות שמשפיעות "
"על המיזם."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "דיונים צוותיים"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "נושא"
@@ -785,7 +829,8 @@ msgstr "גובה"
msgid "handoff.attributes.layout.left"
msgstr "שמאל"
#: src/app/main/ui/handoff/attributes/layout.cljs, src/app/main/ui/handoff/attributes/layout.cljs
#: src/app/main/ui/handoff/attributes/layout.cljs,
#: src/app/main/ui/handoff/attributes/layout.cljs
msgid "handoff.attributes.layout.radius"
msgstr "רדיוס"
@@ -825,15 +870,12 @@ msgstr "פ"
msgid "handoff.attributes.stroke"
msgstr "מתאר"
#, permanent
msgid "handoff.attributes.stroke.alignment.center"
msgstr "מרכז"
#, permanent
msgid "handoff.attributes.stroke.alignment.inner"
msgstr "בפנים"
#, permanent
msgid "handoff.attributes.stroke.alignment.outer"
msgstr "בחוץ"
@@ -964,7 +1006,7 @@ msgstr "מקובל"
msgid "labels.add-custom-font"
msgstr "הוספת גופן משלך"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
msgid "labels.admin"
msgstr "ניהול"
@@ -972,6 +1014,9 @@ msgstr "ניהול"
msgid "labels.all"
msgstr "הכול"
msgid "labels.and"
msgstr "וגם"
#: src/app/main/ui/static.cljs
msgid "labels.bad-gateway.desc-message"
msgstr ""
@@ -1010,7 +1055,8 @@ msgstr "להמשיך"
msgid "labels.create"
msgstr "יצירה"
#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs
#: src/app/main/ui/dashboard/team_form.cljs,
#: src/app/main/ui/dashboard/team_form.cljs
msgid "labels.create-team"
msgstr "יצירת צוות חדש"
@@ -1028,7 +1074,8 @@ msgstr "לוח בקרה"
msgid "labels.default"
msgstr "ברירת מחדל"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.delete"
msgstr "מחיקה"
@@ -1044,7 +1091,10 @@ msgstr "מחיקת שרשור"
msgid "labels.delete-multi-files"
msgstr "מחיקת %s קבצים"
#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/files.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.drafts"
msgstr "טיוטות"
@@ -1055,7 +1105,7 @@ msgstr "עריכה"
msgid "labels.edit-file"
msgstr "עריכת קובץ"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
msgid "labels.editor"
msgstr "עורך"
@@ -1086,7 +1136,9 @@ msgstr "סגנונות"
msgid "labels.fonts"
msgstr "גופנים"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.give-feedback"
msgstr "הגשת משוב"
@@ -1120,6 +1172,10 @@ msgstr ""
msgid "labels.internal-error.main-message"
msgstr "שגיאה פנימית"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.invitations"
msgstr "הזמנות"
#: src/app/main/ui/settings/options.cljs
msgid "labels.language"
msgstr "שפה"
@@ -1138,6 +1194,10 @@ msgstr "יציאה"
msgid "labels.manage-fonts"
msgstr "ניהול גופנים"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.member"
msgstr "חבר"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.members"
msgstr "חברים"
@@ -1153,7 +1213,8 @@ msgstr "סיסמה חדשה"
msgid "labels.next"
msgstr "הבא"
#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs
#: src/app/main/ui/workspace/comments.cljs,
#: src/app/main/ui/dashboard/comments.cljs
msgid "labels.no-comments-available"
msgstr "אין לך התראות ממתינות על הערות"
@@ -1207,7 +1268,8 @@ msgstr "או"
msgid "labels.owner"
msgstr "בעלים"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.password"
msgstr "סיסמה"
@@ -1215,7 +1277,8 @@ msgstr "סיסמה"
msgid "labels.permissions"
msgstr "הרשאות"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.profile"
msgstr "פרופיל"
@@ -1230,10 +1293,15 @@ msgstr "אחרונים"
msgid "labels.release-notes"
msgstr "הודעות מהדורה"
#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/workspace/libraries.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "labels.remove"
msgstr "הסרה"
#: src/app/main/ui/dashboard/team.cljs
msgid "labels.remove-member"
msgstr "הסרת חבר"
#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.rename"
msgstr "שינוי שם"
@@ -1242,6 +1310,10 @@ msgstr "שינוי שם"
msgid "labels.rename-team"
msgstr "שינוי שם לצוות"
#: src/app/main/ui/dashboard/team.cljs
msgid "labels.resend-invitation"
msgstr "שליחת ההזמנה מחדש"
#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
msgid "labels.retry"
msgstr "ניסיון חוזר"
@@ -1272,7 +1344,8 @@ msgstr "אנחנו בהפוגת תחזוקה מתוכננת של המערכות
msgid "labels.service-unavailable.main-message"
msgstr "השירות אינו זמין"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.settings"
msgstr "הגדרות"
@@ -1329,25 +1402,32 @@ msgstr "סביבת עבודה"
msgid "labels.write-new-comment"
msgstr "כתיבת הערה חדשה"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.you"
msgstr "(אני)"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.your-account"
msgstr "החשבון שלך"
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
msgid "media.loading"
msgstr "התמונה נטענת…"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.accept"
msgstr "הוספה כספריה משותפת"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.hint"
msgstr ""
"לאחר שנוספה כספריה משותפת, המשאבים בספריית הקבצים הזאת יהיו זמינים בנוסף "
"לשאר הקבצים שלך."
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.message"
msgstr "הוספת „%s” כספריה משותפת"
@@ -1375,6 +1455,12 @@ msgstr "החלפת כתובת דוא״ל"
msgid "modals.change-email.title"
msgstr "החלפת כתובת הדוא״ל שלך"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "modals.change-owner-and-leave-confirm.message"
msgstr ""
"הבעלות של הצוות הזה בידיך. נא לבחור מישהו מהרשימה כדי לקדם אותו לבעלי "
"הקבוצה בטרם עזיבתך."
#: src/app/main/ui/settings/delete_account.cljs
msgid "modals.delete-account.cancel"
msgstr "ביטול ושמירה על החשבון שלי"
@@ -1491,6 +1577,14 @@ msgstr "שליחת הזמנה"
msgid "modals.invite-member.title"
msgstr "הזמנה להצטרף לצוות"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "modals.leave-and-close-confirm.hint"
msgstr "כיוון שאין עוד חברים בצוות הזה מלבדך, הצוות יימחק על כל המיזמים והקבצים שלו."
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "modals.leave-and-close-confirm.message"
msgstr "ברצונך לעזוב את הצוות %s?"
msgid "modals.leave-and-reassign.forbiden"
msgstr ""
"אי אפשר לעזוב צוות אם אין חברים שאפשר לקדם לבעלות עליה. אולי עדיף למחוק את "
@@ -1498,7 +1592,7 @@ msgstr ""
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "modals.leave-and-reassign.hint1"
msgstr "הבעלות על %s בידיך."
msgstr "הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך."
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "modals.leave-and-reassign.hint2"
@@ -1544,17 +1638,20 @@ msgstr "לקדם את המשתמש הזה לבעלים?"
msgid "modals.promote-owner-confirm.title"
msgstr "קידום לבעלים"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.accept"
msgstr "הסרה כספריה משותפת"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.hint"
msgstr ""
"לאחר הסרה כספריה משותפת, ספריית הקבצים של הקובץ הזה לא תהיה זמינה עוד "
"לשימוש בקרב שאר הקבצים שלך."
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.message"
msgstr "הסרת „%s” כספריה משותפת"
@@ -1562,31 +1659,37 @@ msgstr "הסרת „%s” כספריה משותפת"
msgid "modals.small-nudge"
msgstr "הינד קטן"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component-in-bulk.hint"
msgstr ""
"פעולה זו תעדכן רכיבים בספרייה משותפת. עשוי להשפיע על קבצים אחרים שמשתמשים "
"בה."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component-in-bulk.message"
msgstr "עדכון רכיבים בספרייה משותפת"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.accept"
msgstr "עדכון"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.cancel"
msgstr "ביטול"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.hint"
msgstr ""
"פעולה זו תעדכן רכיב בספריה משותפת. זה עשוי להשפיע על הקבצים האחרים שמשתמשים "
"בה."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.message"
msgstr "עדכון רכיב בספריה משותפת"
@@ -1648,6 +1751,34 @@ msgstr "מיזם ב־github"
msgid "onboarding.contrib.title"
msgstr "התנדבות בקוד פתוח?"
msgid "onboarding.newsletter.accept"
msgstr "כן, להירשם"
msgid "onboarding.newsletter.acceptance-message"
msgstr "בקשת המינוי שלך נשלחה, נשלח לך הודעה בדוא״ל כדי לאשר אותה."
msgid "onboarding.newsletter.decline"
msgstr "לא, תודה"
msgid "onboarding.newsletter.desc"
msgstr ""
"ניתן להירשם לרשימת הדיוור שלנו כדי לשמור על קשר עם תהליך פיתוח המוצר "
"והחדשות העדכניות."
msgid "onboarding.newsletter.policy"
msgstr "מדיניות פרטיות."
msgid "onboarding.newsletter.privacy1"
msgstr "בגלל שאכפת לנו מפרטיות, הנה "
msgid "onboarding.newsletter.privacy2"
msgstr ""
"נשלח אליך הודעות שתואמות לבחירה שלך בלבד. אפשר לבטל את המינוי דרך פרופיל "
"המשתמש או דרך כפתור ביטול המינוי בכל אחת מההודעות מרשימת הדיוור."
msgid "onboarding.newsletter.title"
msgstr "מעניין אותך לקבל חדשות על Penpot?"
msgid "onboarding.slide.0.alt"
msgstr "יצירת עיצובים"
@@ -1759,7 +1890,12 @@ msgstr "ברוך בואך ל־Penpot"
msgid "profile.recovery.go-to-login"
msgstr "מעבר למסך הכניסה"
#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs
#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs
msgid "settings.multiple"
msgstr "מעורב"
@@ -1935,11 +2071,13 @@ msgstr "כל המשאבים"
msgid "workspace.assets.box-filter-graphics"
msgstr "גרפיקה"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.colors"
msgstr "צבעים"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.components"
msgstr "רכיבים"
@@ -1951,15 +2089,19 @@ msgstr "יצירת קבוצה"
msgid "workspace.assets.create-group-hint"
msgstr "הפריטים שלך יקבלו אוטומטית שם בסגנון „שם קבוצה / שם פריט”"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.delete"
msgstr "מחיקה"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.duplicate"
msgstr "שכפול"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.edit"
msgstr "עריכה"
@@ -1967,7 +2109,8 @@ msgstr "עריכה"
msgid "workspace.assets.file-library"
msgstr "ספריית קבצים"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.graphics"
msgstr "גרפיקה"
@@ -1987,7 +2130,9 @@ msgstr "ספריות"
msgid "workspace.assets.not-found"
msgstr "לא נמצאו משאבים"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.rename"
msgstr "שינוי שם"
@@ -2011,7 +2156,8 @@ msgstr[3] "%s פריטים נבחרו"
msgid "workspace.assets.shared"
msgstr "משותף"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.typography"
msgstr "טיפוגרפיות"
@@ -2039,7 +2185,9 @@ msgstr "ריווח תווים"
msgid "workspace.assets.typography.line-height"
msgstr "גובה שורה"
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/handoff/attributes/text.cljs, src/app/main/ui/handoff/attributes/text.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs,
#: src/app/main/ui/handoff/attributes/text.cljs,
#: src/app/main/ui/handoff/attributes/text.cljs
msgid "workspace.assets.typography.sample"
msgstr "שצ"
@@ -2051,11 +2199,24 @@ msgstr "התמרת טקסט"
msgid "workspace.assets.ungroup"
msgstr "פירוק קבוצה"
msgid "workspace.focus.focus-mode"
msgstr "מצב מיקוד"
msgid "workspace.focus.focus-off"
msgstr "מיקוד כבוי"
msgid "workspace.focus.focus-on"
msgstr "מיקוד פעיל"
msgid "workspace.focus.selection"
msgstr "בחירה"
#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs
msgid "workspace.gradients.linear"
msgstr "מדרג קווי"
#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs
#: src/app/main/data/workspace/libraries.cljs,
#: src/app/main/ui/components/color_bullet.cljs
msgid "workspace.gradients.radial"
msgstr "מדרג מעגלי"
@@ -2223,7 +2384,8 @@ msgstr "%s צבעים"
msgid "workspace.libraries.colors.big-thumbnails"
msgstr "תצוגה מקדימה גדולה"
#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs
#: src/app/main/ui/workspace/colorpicker/libraries.cljs,
#: src/app/main/ui/workspace/colorpalette.cljs
msgid "workspace.libraries.colors.file-library"
msgstr "ספריית קבצים"
@@ -2231,7 +2393,8 @@ msgstr "ספריית קבצים"
msgid "workspace.libraries.colors.hsv"
msgstr "HSV"
#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs
#: src/app/main/ui/workspace/colorpicker/libraries.cljs,
#: src/app/main/ui/workspace/colorpalette.cljs
msgid "workspace.libraries.colors.recent-colors"
msgstr "צבעים אחרונים"
@@ -2406,6 +2569,11 @@ msgid "workspace.options.export"
msgstr "ייצוא"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.export-multiple"
msgstr "ייצוא הבחירה"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#, fuzzy
msgid "workspace.options.export-object"
msgstr "ייצוא"
@@ -2413,10 +2581,23 @@ msgstr "ייצוא"
msgid "workspace.options.export.suffix"
msgstr "סיומת"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-complete"
msgstr "הייצוא הושלם"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.exporting-object"
msgstr "מתבצע ייצוא…"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object-error"
msgstr "הייצוא נכשל"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object-slow"
msgstr "הייצוא אטי בהגזמה"
#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs
msgid "workspace.options.fill"
msgstr "מילוי"
@@ -2815,6 +2996,14 @@ msgstr "קיבוץ שכבות"
msgid "workspace.options.layer-options.title.multiple"
msgstr "שכבות נבחרות"
#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs
msgid "workspace.options.more-colors"
msgstr "צבעים נוספים"
#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs
msgid "workspace.options.more-lib-colors"
msgstr "צבעי ספרייה נוספים"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.navigate-to"
msgstr "ניווט אל"
@@ -2826,7 +3015,8 @@ msgstr "ללא"
msgid "workspace.options.opacity"
msgstr "אטימות"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.position"
msgstr "מיקום"
@@ -2848,6 +3038,10 @@ msgstr "פינות בודדות"
msgid "workspace.options.recent-fonts"
msgstr "אחרונים"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.retry"
msgstr "לנסות שוב"
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.rotation"
msgstr "סיבוב"
@@ -2863,6 +3057,10 @@ msgstr "נא לבחור צורה, לוח אומנות או קבוצה כדי ל
msgid "workspace.options.select-artboard"
msgstr "בחירת לוח אומנות"
#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs
msgid "workspace.options.selection-color"
msgstr "צבעים נבחרים"
#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs
msgid "workspace.options.selection-fill"
msgstr "מילוי בחירה"
@@ -2914,7 +3112,8 @@ msgstr "צללים של בחירה"
msgid "workspace.options.show-fill-on-export"
msgstr "הצגה בייצואים"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.size"
msgstr "גודל"
@@ -3059,7 +3258,8 @@ msgstr "גובה שורה"
msgid "workspace.options.text-options.lowercase"
msgstr "אותיות קטנות"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
msgid "workspace.options.text-options.none"
msgstr "ללא"
@@ -3176,11 +3376,15 @@ msgstr "מחיקה"
msgid "workspace.shape.menu.delete-flow-start"
msgstr "מחיקת התחלת זרימה"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.detach-instance"
msgstr "ניתוק מופע"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.detach-instances-in-bulk"
msgstr "הפרדת מופעים"
@@ -3221,7 +3425,8 @@ msgstr "קידום"
msgid "workspace.shape.menu.front"
msgstr "קידום לחזית"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.go-main"
msgstr "מעבר לקובץ הרכיב הראשי"
@@ -3243,18 +3448,22 @@ msgstr "הצלבה"
msgid "workspace.shape.menu.lock"
msgstr "נעילה"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.mask"
msgstr "מסכה"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.paste"
msgstr "הדבקה"
msgid "workspace.shape.menu.path"
msgstr "נתיב"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.reset-overrides"
msgstr "איפוס מעקפים"
@@ -3266,7 +3475,8 @@ msgstr "בחירת שכבה"
msgid "workspace.shape.menu.show"
msgstr "הצגה"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.show-main"
msgstr "הצגת הרכיב הראשי"
@@ -3288,11 +3498,15 @@ msgstr "שחרור נעילה"
msgid "workspace.shape.menu.unmask"
msgstr "ביטול מסכה"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.update-components-in-bulk"
msgstr "עדכון הרכיבים הראשיים"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.update-main"
msgstr "עדכון הרכיב הראשי"
@@ -3304,6 +3518,30 @@ msgstr "היסטוריה (%s)"
msgid "workspace.sidebar.layers"
msgstr "שכבות"
msgid "workspace.sidebar.layers.components"
msgstr "רכיבים"
msgid "workspace.sidebar.layers.frames"
msgstr "לוחות יצירה"
msgid "workspace.sidebar.layers.groups"
msgstr "קבוצות"
msgid "workspace.sidebar.layers.images"
msgstr "תמונות"
msgid "workspace.sidebar.layers.masks"
msgstr "מסכות"
msgid "workspace.sidebar.layers.search"
msgstr "חיפוש בשכבות"
msgid "workspace.sidebar.layers.shapes"
msgstr "צורות"
msgid "workspace.sidebar.layers.texts"
msgstr "טקסטים"
#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs
msgid "workspace.sidebar.options.svg-attrs.title"
msgstr "מאפייני SVG יובאו"

348
frontend/translations/lt.po Normal file
View File

@@ -0,0 +1,348 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2022-05-25 09:24+0000\n"
"Last-Translator: Vincas Dundzys <dundzys.vincas@gmail.com>\n"
"Language-Team: Lithuanian "
"<https://hosted.weblate.org/projects/penpot/frontend/lt/>\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > "
"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) "
"? 1 : 2);\n"
"X-Generator: Weblate 4.13-dev\n"
#: src/app/main/ui/auth/register.cljs
msgid "auth.already-have-account"
msgstr "Jau turite paskyrą?"
#: src/app/main/ui/auth/register.cljs
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
msgid "auth.confirm-password"
msgstr "Slaptažodžio patvirtinimas"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.create-demo-account"
msgstr "Kurti demonstracinę paskyrą"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.create-demo-profile"
msgstr "Norite tik išmėginti?"
#: src/app/main/ui/auth/register.cljs
msgid "auth.demo-warning"
msgstr ""
"Tai yra DEMONSTRACINĖ versija, NEKURKITE tikrų darbų, nes projektai "
"periodiškai - šalinami."
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.email"
msgstr "El. paštas"
#: src/app/main/ui/auth/login.cljs
msgid "auth.forgot-password"
msgstr "Pamiršote slaptažodį?"
#: src/app/main/ui/auth/register.cljs
msgid "auth.fullname"
msgstr "Vardas ir Pavardė"
#: src/app/main/ui/auth/register.cljs
msgid "auth.login-here"
msgstr "Prisijungimas čia"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-submit"
msgstr "Prisijungti"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-title"
msgstr "Malonu Jus vėl matyti!"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-with-github-submit"
msgstr "GitHub"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-with-google-submit"
msgstr "Google"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-with-ldap-submit"
msgstr "Prisijungti su LDAP"
#: src/app/main/ui/auth/login.cljs
msgid "auth.login-with-oidc-submit"
msgstr "OpenID prisijungimas"
#: src/app/main/ui/auth/recovery.cljs
msgid "auth.new-password"
msgstr "Įveskite naują slaptažodį"
#: src/app/main/ui/auth/register.cljs
msgid "auth.newsletter-subscription"
msgstr "Sutinku prenumeruoti Penpot naujienas."
#: src/app/main/ui/auth/recovery.cljs
#, fuzzy
msgid "auth.notifications.invalid-token-error"
msgstr "Atkūrimo prieigos raktas neteisingas."
#: src/app/main/ui/auth/recovery.cljs
msgid "auth.notifications.password-changed-successfully"
msgstr "Slaptažodis sėkmingai pakeistas"
#: src/app/main/ui/auth/recovery_request.cljs
msgid "auth.notifications.profile-not-verified"
msgstr "Paskyra yra nepatvirtinta, prieš tęsdami patikrinkite paskyrą."
#: src/app/main/ui/auth/recovery_request.cljs
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
msgid "auth.notifications.team-invitation-accepted"
msgstr "Sėkmingai prisijungė prie komandos"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.password"
msgstr "Slaptažodis"
#: src/app/main/ui/auth/register.cljs
msgid "auth.password-length-hint"
msgstr "Ne mažiau kaip 8 simboliai"
msgid "auth.privacy-policy"
msgstr "Privatumo politika"
#: src/app/main/ui/auth/recovery_request.cljs
msgid "auth.recovery-request-submit"
msgstr "Atkurti slaptažodį"
#: src/app/main/ui/auth/recovery_request.cljs
msgid "auth.recovery-request-subtitle"
msgstr "Atsiųsime jums el. laišką su instrukcijomis"
#: src/app/main/ui/auth/recovery_request.cljs
msgid "auth.recovery-request-title"
msgstr "Pamiršote slaptažodį?"
#: src/app/main/ui/auth/recovery.cljs
msgid "auth.recovery-submit"
msgstr "Slaptažodžio keitimas"
#: src/app/main/ui/auth/login.cljs
msgid "auth.register"
msgstr "Dar neturite paskyros?"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.register-submit"
msgstr "Sukurti paskyrą"
#: src/app/main/ui/auth/register.cljs
msgid "auth.register-subtitle"
msgstr "Tai - nemokama, tai - atviras kodas"
#: src/app/main/ui/auth/register.cljs
msgid "auth.register-title"
msgstr "Sukurti paskyrą"
#: src/app/main/ui/auth.cljs
msgid "auth.sidebar-tagline"
msgstr "Atviro kodo dizaino ir prototipų kūrimo sprendimas."
msgid "auth.terms-of-service"
msgstr "Paslaugų teikimo sąlygos"
#: src/app/main/ui/auth/register.cljs
msgid "auth.terms-privacy-agreement"
msgstr ""
"Kurdami naują paskyrą sutinkate su mūsų paslaugų teikimo sąlygomis ir "
"privatumo politika."
#: src/app/main/ui/auth/register.cljs
msgid "auth.verification-email-sent"
msgstr "Išsiuntėme patvirtinimo el. laišką adresu"
msgid "common.share-link.confirm-deletion-link-description"
msgstr ""
"Ar tikrai norite pašalinti šią nuorodą? Jei tai padarysite, ji niekam "
"nebebus pasiekiama"
msgid "common.share-link.get-link"
msgstr "Gauti nuorodą"
msgid "common.share-link.link-copied-success"
msgstr "Nuoroda sėkmingai nukopijuota"
msgid "common.share-link.link-deleted-success"
msgstr "Nuoroda sėkmingai ištrinta"
msgid "common.share-link.permissions-can-access"
msgstr "Gali pasiekti"
msgid "common.share-link.permissions-can-view"
msgstr "Galima peržiūrėti"
msgid "common.share-link.permissions-hint"
msgstr "Kiekvienas, turintis nuorodą, turės prieigą"
msgid "common.share-link.placeholder"
msgstr "Bendrinama nuoroda bus rodoma čia"
msgid "common.share-link.remove-link"
msgstr "Pašalinti nuorodą"
msgid "common.share-link.title"
msgstr "Dalinkitės prototipais"
msgid "common.share-link.view-all-pages"
msgstr "Visi puslapiai"
msgid "common.share-link.view-current-page"
msgstr "Tik šis puslapis"
msgid "common.share-link.view-selected-pages"
msgstr "Parinkti puslapiai"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.add-shared"
msgstr "Pridėti kaip bendrinamą biblioteką"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.change-email"
msgstr "Keisti el. paštą"
#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
msgid "dashboard.copy-suffix"
msgstr "(kopija)"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.create-new-team"
msgstr "+ Sukurti naują komandą"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.default-team-name"
msgstr "Jūsų Penpot"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.delete-team"
msgstr "Naikinti komandą"
msgid "dashboard.draft-title"
msgstr "Juodraštis"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.duplicate"
msgstr "Dublikatas"
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.duplicate-multi"
msgstr "Dubliuoti %s failus"
#: src/app/main/ui/dashboard/grid.cljs
msgid "dashboard.empty-files"
msgstr "Čia vis dar nėra failų"
#: src/app/main/ui/dashboard/grid.cljs
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
"O ne! Dar neturite failų! Jei norite išbandyti kai kuriuos šablonus, eikite "
"į [Bibliotekos ir šablonai] (https://penpot.app/libraries-templates.html)"
msgid "dashboard.export-frames"
msgstr "Eksportuokite darbalaukius į PDF..."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-frames.title"
msgstr "Eksportuoti į PDF"
msgid "dashboard.export-multi"
msgstr "Eksportuoti Penpot %s failus"
#: src/app/main/ui/export.cljs
msgid "dashboard.export-multiple.selected"
msgstr "Pasirinkta %s iš %s elementų"
#: src/app/main/ui/workspace/header.cljs
msgid "dashboard.export-shapes"
msgstr "Eksportuoti"
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.how-to"
msgstr ""
"Galite pridėti eksportavimo nustatymus prie elementų iš dizaino ypatybių "
"(dešinės šoninės juostos apačioje)."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.how-to-link"
msgstr "Informacija, kaip nustatyti eksportą \"Penpot\"."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.no-elements"
msgstr "Nėra elementų su eksporto nustatymais."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-shapes.title"
msgstr "Eksportuoti pažymėtą sritį"
msgid "dashboard.export-single"
msgstr "Eksportuoti Penpot failą"
msgid "dashboard.export.detail"
msgstr "* Gali apimti komponentus, grafiką, spalvas ir (arba) tipografiją."
msgid "dashboard.export.explain"
msgstr ""
"Viename ar keliuose failuose, kuriuos norite eksportuoti, naudojamos "
"bendros bibliotekos. Ką norite daryti su jų komponentais*?"
msgid "dashboard.export.options.all.message"
msgstr ""
"failai su bendromis bibliotekomis bus įtraukti į eksportą, išlaikant jų "
"susiejimą."
msgid "dashboard.export.options.all.title"
msgstr "Eksportuoti bendrai naudojamas bibliotekas"
msgid "dashboard.export.options.detach.message"
msgstr ""
"Bendrai naudojamos bibliotekos nebus įtrauktos į eksportą ir į biblioteką "
"nebus pridėta jokių išteklių. "
msgid "dashboard.export.options.detach.title"
msgstr ""
"Bendrai naudojamus bibliotekos komponentus traktuokite kaip pagrindinius "
"objektus"
msgid "dashboard.export.options.merge.message"
msgstr ""
"Jūsų failas bus eksportuotas su visais išoriniais komponentais, sujungtais "
"į failų biblioteką."
msgid "dashboard.export.options.merge.title"
msgstr "Įtraukti bendrai naudojamus bibliotekos komponentus į failų bibliotekas"
msgid "dashboard.export.title"
msgstr "Eksportuoti failus"
msgid "dashboard.fonts.deleted-placeholder"
msgstr "Šriftas ištrintas"
#: src/app/main/ui/dashboard/fonts.cljs
msgid "dashboard.fonts.dismiss-all"
msgstr "Atmesti visus"
msgid "dashboard.fonts.empty-placeholder"
msgstr "Vis dar neįdiegėte tinkintų šriftų."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2022-03-05 20:57+0000\n"
"PO-Revision-Date: 2022-05-16 21:16+0000\n"
"Last-Translator: Joseph V M <shibinjose991@gmail.com>\n"
"Language-Team: Malayalam "
"<https://hosted.weblate.org/projects/penpot/frontend/ml/>\n"
@@ -9,7 +9,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.12-dev\n"
"X-Generator: Weblate 4.13-dev\n"
#: src/app/main/ui/auth/register.cljs
msgid "auth.already-have-account"
@@ -266,9 +266,17 @@ msgstr ""
msgid "dashboard.export-frames"
msgstr "ആർട്ട്ബോർഡുകൾ പിഡിഎഫായി എക്സ്പോർട്ട് ചെയ്യുക...."
#: src/app/main/ui/export.cljs
msgid "dashboard.export-frames.title"
msgstr "പിഡിഎഫായി എക്സ്പോർട്ട് ചെയ്യുക"
msgid "dashboard.export-multi"
msgstr "പെൻപോട്ട് %s ഫയലുകൾ എക്സ്പോർട്ട് ചെയ്യുക"
#: src/app/main/ui/workspace/header.cljs
msgid "dashboard.export-shapes"
msgstr "എക്സ്പോർട്ട്"
msgid "dashboard.export-single"
msgstr "പെൻപോട്ട് ഫയൽ എക്സ്പോർട്ട് ചെയ്യുക"

View File

@@ -235,14 +235,6 @@ msgstr "Ta del i sludringen"
msgid "feedback.description"
msgstr "Beskrivelse"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Gå til diskusjoner"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Lagdiskusjoner"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Emne"

3759
frontend/translations/pl.po Normal file
View File

File diff suppressed because it is too large Load Diff

View File

@@ -546,24 +546,6 @@ msgstr "Com vontade de falar? Converse conosco no Gitter"
msgid "feedback.description"
msgstr "Descrição"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Ir para discussões"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Junte-se ao fórum de comunicação colaborativa da equipe da Penpot."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"Você pode fazer e responder perguntas, ter conversas abertas e acompanhar "
"as decisões que afetam o projeto."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Discussões da equipe"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Assunto"

View File

@@ -537,24 +537,6 @@ msgstr "Te simți sociabil? Hai să vorbim pe Gitter"
msgid "feedback.description"
msgstr "Descriere"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Du-te la discuții"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Alătură-te forumului de comunicare al echipei Penpot."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"Poți pune întrebări, iei parte la discuții deschise și poți contribui la "
"dezvoltarea proiectului."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Discuțiile echipei"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Subiect"

View File

@@ -720,25 +720,6 @@ msgstr "Поговорим? Заходите в чат Gitter!"
msgid "feedback.description"
msgstr "Подробности"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Зайти в обсуждения"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Посетите форум для совместного обсуждения планов на Penpot."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"Там вы можете задавать вопросы, проследить за неоднозначными задачами, и "
"поучаствовать в принятии решений по проекту."
#: src/app/main/ui/settings/feedback.cljs
#, fuzzy
msgid "feedback.discussions-title"
msgstr "Командный форум"
#: src/app/main/ui/settings/feedback.cljs
#, fuzzy
msgid "feedback.subject"

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2022-02-18 17:56+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"PO-Revision-Date: 2022-04-04 11:11+0000\n"
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish "
"<https://hosted.weblate.org/projects/penpot/frontend/tr/>\n"
"Language: tr\n"
@@ -39,7 +39,8 @@ msgstr ""
"Bu bir DEMO hizmettir, gerçek işleriniz için KULLANMAYIN, projeler belirli "
"aralıklarla silinecektir."
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
#: src/app/main/ui/auth/register.cljs,
#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs
msgid "auth.email"
msgstr "E-posta"
@@ -212,7 +213,8 @@ msgstr "Yalnızca bu sayfa"
msgid "common.share-link.view-selected-pages"
msgstr "Seçili sayfalar"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.add-shared"
msgstr "Paylaşılan Kütüphane olarak ekle"
@@ -239,7 +241,8 @@ msgstr "Takımı sil"
msgid "dashboard.draft-title"
msgstr "Taslak"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.duplicate"
msgstr "Kopyasını oluştur"
@@ -252,12 +255,11 @@ msgid "dashboard.empty-files"
msgstr "Burada hiç dosyan yok"
#: src/app/main/ui/dashboard/grid.cljs
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
"Burada henüz dosya yok. Bazı şablonları denemek isterseniz [Kütüphaneler ve "
"şablonlar bölümüne](https://penpot.app/libraries-templates.html) "
"gidebilirsiniz"
"Olamaz! Henüz dosyanız yok! Bazı şablonları denemek isterseniz "
"[Kütüphaneler ve şablonlar](https://penpot.app/libraries-templates.html) "
"sayfasına gidin"
msgid "dashboard.export-frames"
msgstr "Çalışma yüzeylerini PDF olarak dışarı aktar..."
@@ -319,7 +321,6 @@ msgid_plural "dashboard.fonts.fonts-added"
msgstr[0] "1 yazı tipi eklendi"
msgstr[1] "%s yazı tipi eklendi"
#, markdown
msgid "dashboard.fonts.hero-text1"
msgstr ""
"Buraya yüklediğiniz herhangi bir web yazı tipi, bu takımın dosyalarının "
@@ -328,7 +329,6 @@ msgstr ""
"gruplandırılacak. Yazı tiplerini şu biçimlerde yükleyebilirsiniz: **TTF, "
"OTF ve WOFF** (yalnızca bir tane gerekli olacak)."
#, markdown
msgid "dashboard.fonts.hero-text2"
msgstr ""
"Sadece kendinize ait veya Penpot'ta kullanılabilecek bir lisansa sahip olan "
@@ -382,7 +382,8 @@ msgstr "Dosya yükleniyor: %s"
msgid "dashboard.invite-profile"
msgstr "Takıma davet et"
#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.leave-team"
msgstr "Takımdan ayrıl"
@@ -397,7 +398,8 @@ msgstr "dosyalarınız yükleniyor …"
msgid "dashboard.loading-fonts"
msgstr "yazı tipleriniz yükleniyor…"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.move-to"
msgstr "Şuraya taşı"
@@ -409,7 +411,8 @@ msgstr "%s dosyayı şuraya taşı"
msgid "dashboard.move-to-other-team"
msgstr "Başka takıma taşı"
#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/files.cljs
msgid "dashboard.new-file"
msgstr "+ Yeni Dosya"
@@ -425,6 +428,14 @@ msgstr "+ Yeni Proje"
msgid "dashboard.new-project-prefix"
msgstr "Yeni Proje"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-msg"
msgstr "Bana Penpot ile ilgili haberler, ürün güncellemeleri ve tavsiyeler gönder."
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.newsletter-title"
msgstr "Bülten aboneliği"
#: src/app/main/ui/dashboard/search.cljs
msgid "dashboard.no-matches-for"
msgstr "\"%s\" için sonuç bulunamadı"
@@ -476,10 +487,15 @@ msgstr "Sahibi olarak belirle"
msgid "dashboard.remove-account"
msgstr "Hesabınızı kaldırmak mı istiyorsunuz?"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.remove-shared"
msgstr "Paylaşılan Kütüphane olarak sil"
#: src/app/main/ui/settings/profile.cljs
msgid "dashboard.save-settings"
msgstr "Ayarları kaydet"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "dashboard.search-placeholder"
msgstr "Ara…"
@@ -516,7 +532,8 @@ msgstr "Dosyanın kopyası başarıyla oluşturuldu"
msgid "dashboard.success-duplicate-project"
msgstr "Projenin kopyası başarıyla oluşturuldu"
#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.success-move-file"
msgstr "Dosyan başarıyla taşındı"
@@ -556,7 +573,9 @@ msgstr "Arama sonuçları"
msgid "dashboard.type-something"
msgstr "Aramak için yazın"
#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs
#: src/app/main/ui/settings/profile.cljs,
#: src/app/main/ui/settings/password.cljs,
#: src/app/main/ui/settings/options.cljs
msgid "dashboard.update-settings"
msgstr "Ayarları güncelle"
@@ -572,7 +591,11 @@ msgstr "E-posta"
msgid "dashboard.your-name"
msgstr "Adın"
#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs,
#: src/app/main/ui/dashboard/libraries.cljs,
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "dashboard.your-penpot"
msgstr "Penpot'un"
@@ -603,7 +626,8 @@ msgstr "Kimliğiniz doğrulanmamış veya oturumun süresi dolmuş gibi görün
msgid "errors.clipboard-not-implemented"
msgstr "Tarayıcın bu işlemi gerçekleştiremiyor"
#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs
#: src/app/main/ui/auth/verify_token.cljs,
#: src/app/main/ui/settings/change_email.cljs
msgid "errors.email-already-exists"
msgstr "E-posta zaten kullanımda"
@@ -614,7 +638,10 @@ msgstr "E-posta zaten doğrulandı."
msgid "errors.email-as-password"
msgstr "E-postanızı parola olarak kullanamazsınız"
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/auth/register.cljs,
#: src/app/main/ui/auth/recovery_request.cljs,
#: src/app/main/ui/settings/change_email.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "errors.email-has-permanent-bounces"
msgstr "«%s» adresi için çok fazla geri dönme raporu var."
@@ -622,6 +649,9 @@ msgstr "«%s» adresi için çok fazla geri dönme raporu var."
msgid "errors.email-invalid-confirmation"
msgstr "Doğrulama e-postası eşleşmiyor"
msgid "errors.email-spam-or-permanent-bounces"
msgstr "«%s» e-postasının spam veya kalıcı olarak geri döndüğü bildirildi."
#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs
msgid "errors.generic"
msgstr "Bir şeyler ters gitti."
@@ -649,7 +679,7 @@ msgstr "Bu görsel eklemek için çok büyük (5MB altında olmalı)."
msgid "errors.media-type-mismatch"
msgstr "Görselin içeriği, dosya uzantısı ile eşleşmiyor gibi görünüyor."
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
msgid "errors.media-type-not-allowed"
msgstr "Geçerli bir görsel gibi görünmüyor."
@@ -670,7 +700,9 @@ msgstr "Parolalar eşleşmedi"
msgid "errors.password-too-short"
msgstr "Parola en az 8 karakterden oluşmalı"
#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/auth/recovery_request.cljs,
#: src/app/main/ui/settings/change_email.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "errors.profile-is-muted"
msgstr ""
"Profilinizde sessize alınmış e-postalar var (spam raporları veya yüksek "
@@ -692,7 +724,13 @@ msgstr "Sahip takımdan ayrılamaz, sahip rolünü yeniden atamanız gerekir."
msgid "errors.terms-privacy-agreement-invalid"
msgstr "Hizmet şartlarımızı ve gizlilik politikamızı kabul etmelisin."
#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#: src/app/main/ui/auth/verify_token.cljs
msgid "errors.token-expired"
msgstr "Jetonun süresi geçti"
#: src/app/main/data/media.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs
msgid "errors.unexpected-error"
msgstr "Beklenmedik bir hata oluştu."
@@ -720,24 +758,6 @@ msgstr "Sohbet etmek ister misin? Glitter'da bizimle sohbet edebilirsin"
msgid "feedback.description"
msgstr "Açıklama"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "Tartışmalar bölümüne git"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "Penpot takımı ortak iletişim forumuna katıl."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr ""
"Soru sorabilir ve soruları cevaplayabilir, açık uçlu tartışmalar yapabilir "
"ve projeyi etkileyen kararları takip edebilirsin."
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "Takım tartışmaları"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "Konu"
@@ -804,7 +824,8 @@ msgstr "Yükseklik"
msgid "handoff.attributes.layout.left"
msgstr "Sol"
#: src/app/main/ui/handoff/attributes/layout.cljs, src/app/main/ui/handoff/attributes/layout.cljs
#: src/app/main/ui/handoff/attributes/layout.cljs,
#: src/app/main/ui/handoff/attributes/layout.cljs
msgid "handoff.attributes.layout.radius"
msgstr "Yarıçap"
@@ -844,15 +865,12 @@ msgstr "S"
msgid "handoff.attributes.stroke"
msgstr "Çerçeve"
#, permanent
msgid "handoff.attributes.stroke.alignment.center"
msgstr "Merkezi"
#, permanent
msgid "handoff.attributes.stroke.alignment.inner"
msgstr "İçinde"
#, permanent
msgid "handoff.attributes.stroke.alignment.outer"
msgstr "Dışarıda"
@@ -983,7 +1001,7 @@ msgstr "Kabul et"
msgid "labels.add-custom-font"
msgstr "Özel yazı tipi ekle"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
msgid "labels.admin"
msgstr "Yönetici"
@@ -991,6 +1009,9 @@ msgstr "Yönetici"
msgid "labels.all"
msgstr "Hepsi"
msgid "labels.and"
msgstr "ve"
#: src/app/main/ui/static.cljs
msgid "labels.bad-gateway.desc-message"
msgstr ""
@@ -1029,7 +1050,8 @@ msgstr "Devam et"
msgid "labels.create"
msgstr "Oluştur"
#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs
#: src/app/main/ui/dashboard/team_form.cljs,
#: src/app/main/ui/dashboard/team_form.cljs
msgid "labels.create-team"
msgstr "Yeni takım oluştur"
@@ -1047,7 +1069,8 @@ msgstr "Denetim paneli"
msgid "labels.default"
msgstr "varsayılan"
#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/project_menu.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.delete"
msgstr "Sil"
@@ -1063,7 +1086,10 @@ msgstr "Mesaj dizisini sil"
msgid "labels.delete-multi-files"
msgstr "%s dosyayı sil"
#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/dashboard/projects.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs,
#: src/app/main/ui/dashboard/files.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.drafts"
msgstr "Taslak"
@@ -1074,7 +1100,7 @@ msgstr "Düzenle"
msgid "labels.edit-file"
msgstr "Dosya düzenle"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs
msgid "labels.editor"
msgstr "Düzenleyici"
@@ -1108,7 +1134,9 @@ msgstr "Biçimler"
msgid "labels.fonts"
msgstr "Yazı tipleri"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.give-feedback"
msgstr "Geri bildirimde bulun"
@@ -1142,6 +1170,10 @@ msgstr ""
msgid "labels.internal-error.main-message"
msgstr "İç Hata"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.invitations"
msgstr "Davetler"
#: src/app/main/ui/settings/options.cljs
msgid "labels.language"
msgstr "Dil"
@@ -1160,6 +1192,10 @@ msgstr "Oturumu kapat"
msgid "labels.manage-fonts"
msgstr "Yazı tiplerini yönet"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.member"
msgstr "Üye"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.members"
msgstr "Üyeler"
@@ -1175,7 +1211,8 @@ msgstr "Yeni parola"
msgid "labels.next"
msgstr "Sonraki"
#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs
#: src/app/main/ui/workspace/comments.cljs,
#: src/app/main/ui/dashboard/comments.cljs
msgid "labels.no-comments-available"
msgstr "Bekleyen yorum bildirimi yok"
@@ -1223,7 +1260,8 @@ msgstr "veya"
msgid "labels.owner"
msgstr "Sahip"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.password"
msgstr "Parola"
@@ -1231,7 +1269,8 @@ msgstr "Parola"
msgid "labels.permissions"
msgstr "İzinler"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.profile"
msgstr "Profil"
@@ -1246,10 +1285,15 @@ msgstr "Son"
msgid "labels.release-notes"
msgstr "Sürüm notları"
#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs
#: src/app/main/ui/workspace/libraries.cljs,
#: src/app/main/ui/dashboard/team.cljs
msgid "labels.remove"
msgstr "Kaldır"
#: src/app/main/ui/dashboard/team.cljs
msgid "labels.remove-member"
msgstr "Üyeyi kaldır"
#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs
msgid "labels.rename"
msgstr "Yeniden adlandır"
@@ -1258,6 +1302,10 @@ msgstr "Yeniden adlandır"
msgid "labels.rename-team"
msgstr "Takımı yeniden adlandır"
#: src/app/main/ui/dashboard/team.cljs
msgid "labels.resend-invitation"
msgstr "Daveti yeniden gönder"
#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
msgid "labels.retry"
msgstr "Yeniden dene"
@@ -1288,11 +1336,12 @@ msgstr "Sistemlerimizin programlı bakımını yapıyoruz."
msgid "labels.service-unavailable.main-message"
msgstr "Hizmet Kullanılamıyor"
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs,
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.settings"
msgstr "Ayarlar"
#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs
#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs
msgid "labels.share-prototype"
msgstr "Prototipi paylaş"
@@ -1346,25 +1395,32 @@ msgstr "Çalışma alanı"
msgid "labels.write-new-comment"
msgstr "Yeni yorum yaz"
#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.you"
msgstr "(siz)"
#: src/app/main/ui/dashboard/sidebar.cljs
msgid "labels.your-account"
msgstr "Hesabınız"
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs
msgid "media.loading"
msgstr "Görsel yükleniyor…"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.accept"
msgstr "Paylaşılmış Kütüphane olarak Ekle"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.hint"
msgstr ""
"Paylaşılmış Kütüphane olarak eklenince, bu dosya kütüphanesindeki varlıklar "
"diğer dosyalarınızdan da ulaşılabilecek."
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.add-shared-confirm.message"
msgstr "Paylaşılmış Kütüphane olarak “%s” Ekle"
@@ -1571,17 +1627,20 @@ msgstr "Bu kullanıcıyı sahip olarak terfi ettirmek istediğinden emin misin?"
msgid "modals.promote-owner-confirm.title"
msgstr "Sahip olarak terfi ettir"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.accept"
msgstr "Paylaşılan Kütüphane olarak kaldır"
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.hint"
msgstr ""
"Paylaşılan Kütüphane olarak kaldırıldıktan sonra, bu dosyanın Dosya "
"Kütüphanesi, dosyalarınızın geri kalanında artık kullanılabilir olmayacak."
#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
#: src/app/main/ui/workspace/header.cljs,
#: src/app/main/ui/dashboard/file_menu.cljs
msgid "modals.remove-shared-confirm.message"
msgstr "“%s” Paylaşılan Kütüphanesini Kaldır"
@@ -1589,31 +1648,37 @@ msgstr "“%s” Paylaşılan Kütüphanesini Kaldır"
msgid "modals.small-nudge"
msgstr "Küçük dürtme"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component-in-bulk.hint"
msgstr ""
"Paylaşılan bir kütüphanedeki bileşenleri güncellemek üzeresiniz. Bu, onu "
"kullanan diğer dosyaları etkileyebilir."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component-in-bulk.message"
msgstr "Paylaşılan bir kütüphanedeki bileşenleri güncelle"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.accept"
msgstr "Güncelle"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.cancel"
msgstr "İptal"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.hint"
msgstr ""
"Paylaşılmış bir kütüphanedeki bileşeni güncellemek üzeresin. Onu kullanan "
"diğer dosyalar etkilenebilir."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "modals.update-remote-component.message"
msgstr "Paylaşılmış bir kütüphanede bir bileşen güncelle"
@@ -1673,6 +1738,35 @@ msgstr "github'da erişebilir"
msgid "onboarding.contrib.title"
msgstr "Açık Kaynağa Katkıda Bulunan Birisi?"
msgid "onboarding.newsletter.accept"
msgstr "Evet, abone ol"
msgid "onboarding.newsletter.acceptance-message"
msgstr "Abonelik talebiniz iletildi, size onaylamak için bir e-posta göndereceğiz."
msgid "onboarding.newsletter.decline"
msgstr "Hayır, teşekkürler"
msgid "onboarding.newsletter.desc"
msgstr ""
"Ürün geliştirmedeki ilerleme ve haberlerden haberdar olmak için bültenimize "
"abone olun."
msgid "onboarding.newsletter.policy"
msgstr "Gizlilik Politikası."
msgid "onboarding.newsletter.privacy1"
msgstr "Gizliliğe önem verdiğimiz için, işte bizim "
msgid "onboarding.newsletter.privacy2"
msgstr ""
"Size yalnızca ilgili e-postaları göndereceğiz. Aboneliğinizi istediğiniz "
"zaman kullanıcı profilinizden veya herhangi bir bültenimizdeki abonelikten "
ıkma bağlantısı aracılığıyla iptal edebilirsiniz."
msgid "onboarding.newsletter.title"
msgstr "Penpot haberlerini almak ister misiniz?"
msgid "onboarding.slide.0.alt"
msgstr "Tasarımlar oluşturun"
@@ -1786,7 +1880,12 @@ msgstr "Penpot'a Hoş Geldiniz"
msgid "profile.recovery.go-to-login"
msgstr "Oturum açmaya git"
#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs
#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs
msgid "settings.multiple"
msgstr "Karışık"
@@ -1967,11 +2066,13 @@ msgstr "Tüm varlıklar"
msgid "workspace.assets.box-filter-graphics"
msgstr "Grafikler"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.colors"
msgstr "Renkler"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.components"
msgstr "Bileşenler"
@@ -1983,15 +2084,19 @@ msgstr "Grup oluştur"
msgid "workspace.assets.create-group-hint"
msgstr "Ögeleriniz otomatik olarak \"grup adı / öge adı\" olarak adlandırılacak"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.delete"
msgstr "Sil"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.duplicate"
msgstr "Çoğalt"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.edit"
msgstr "Düzenle"
@@ -1999,7 +2104,8 @@ msgstr "Düzenle"
msgid "workspace.assets.file-library"
msgstr "Dosya kütüphanesi"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.graphics"
msgstr "Grafikler"
@@ -2019,7 +2125,9 @@ msgstr "Kütüphaneler"
msgid "workspace.assets.not-found"
msgstr "Varlık bulunmadı"
#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/sitemap.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.rename"
msgstr "Yeniden adlandır"
@@ -2041,7 +2149,8 @@ msgstr[1] "%s öge seçildi"
msgid "workspace.assets.shared"
msgstr "PAYLAŞILDI"
#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs
#: src/app/main/ui/workspace/sidebar/assets.cljs,
#: src/app/main/ui/workspace/sidebar/assets.cljs
msgid "workspace.assets.typography"
msgstr "Tipografiler"
@@ -2069,7 +2178,9 @@ msgstr "Harf Boşluğu"
msgid "workspace.assets.typography.line-height"
msgstr "Satır Yüksekliği"
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/handoff/attributes/text.cljs, src/app/main/ui/handoff/attributes/text.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs,
#: src/app/main/ui/handoff/attributes/text.cljs,
#: src/app/main/ui/handoff/attributes/text.cljs
msgid "workspace.assets.typography.sample"
msgstr "Ag"
@@ -2081,11 +2192,24 @@ msgstr "Metin Dönüşümü"
msgid "workspace.assets.ungroup"
msgstr "Grubu dağıt"
msgid "workspace.focus.focus-mode"
msgstr "Odaklanma modu"
msgid "workspace.focus.focus-off"
msgstr "Odaklanma kapalı"
msgid "workspace.focus.focus-on"
msgstr "Odaklanma açık"
msgid "workspace.focus.selection"
msgstr "Seçim"
#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs
msgid "workspace.gradients.linear"
msgstr "Doğrusal degrade"
#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs
#: src/app/main/data/workspace/libraries.cljs,
#: src/app/main/ui/components/color_bullet.cljs
msgid "workspace.gradients.radial"
msgstr "Dairesel degrade"
@@ -2253,7 +2377,8 @@ msgstr "%s renk"
msgid "workspace.libraries.colors.big-thumbnails"
msgstr "Büyük önizlemeler"
#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs
#: src/app/main/ui/workspace/colorpicker/libraries.cljs,
#: src/app/main/ui/workspace/colorpalette.cljs
msgid "workspace.libraries.colors.file-library"
msgstr "Dosya kütüphanesi"
@@ -2261,7 +2386,8 @@ msgstr "Dosya kütüphanesi"
msgid "workspace.libraries.colors.hsv"
msgstr "HSV"
#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs
#: src/app/main/ui/workspace/colorpicker/libraries.cljs,
#: src/app/main/ui/workspace/colorpalette.cljs
msgid "workspace.libraries.colors.recent-colors"
msgstr "Son renkler"
@@ -2433,9 +2559,14 @@ msgstr "Tasarım"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.export"
msgstr "Dışarı Aktar"
msgstr "Dışa aktar"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.export-multiple"
msgstr "Seçimi dışa aktar"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#, fuzzy
msgid "workspace.options.export-object"
msgstr "Dışa aktar"
@@ -2443,9 +2574,23 @@ msgstr "Dışa aktar"
msgid "workspace.options.export.suffix"
msgstr "Son ek"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-complete"
msgstr "Dışa aktarma tamamlandı"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs,
#: src/app/main/ui/handoff/exports.cljs
msgid "workspace.options.exporting-object"
msgstr "Dışarı aktarılıyor…"
msgstr "Dışa aktarılıyor…"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object-error"
msgstr "Dışa aktarılamadı"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, #: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.exporting-object-slow"
msgstr "Dışa aktarma beklenmedik şekilde yavaş"
#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs
msgid "workspace.options.fill"
@@ -2845,6 +2990,14 @@ msgstr "Katman grubu"
msgid "workspace.options.layer-options.title.multiple"
msgstr "Seçili katmanlar"
#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs
msgid "workspace.options.more-colors"
msgstr "Daha fazla renk"
#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs
msgid "workspace.options.more-lib-colors"
msgstr "Daha fazla kütüphane rengi"
#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
msgid "workspace.options.navigate-to"
msgstr "Git"
@@ -2856,7 +3009,8 @@ msgstr "Hiçbiri"
msgid "workspace.options.opacity"
msgstr "Opaklık"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.position"
msgstr "Konum"
@@ -2878,6 +3032,10 @@ msgstr "Tek köşe"
msgid "workspace.options.recent-fonts"
msgstr "Son kullanılanlar"
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs
msgid "workspace.options.retry"
msgstr "Yeniden dene"
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.rotation"
msgstr "Döndür"
@@ -2895,6 +3053,10 @@ msgstr ""
msgid "workspace.options.select-artboard"
msgstr "Çalışma yüzeyi seç"
#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs
msgid "workspace.options.selection-color"
msgstr "Seçilen renkler"
#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs
msgid "workspace.options.selection-fill"
msgstr "Seçimi doldur"
@@ -2946,7 +3108,8 @@ msgstr "Gölge seçimi"
msgid "workspace.options.show-fill-on-export"
msgstr "Dışa aktarmalarda göster"
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
msgid "workspace.options.size"
msgstr "Boyut"
@@ -3091,7 +3254,8 @@ msgstr "Satır yüksekliği"
msgid "workspace.options.text-options.lowercase"
msgstr "Küçük harf"
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs,
#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
msgid "workspace.options.text-options.none"
msgstr "Hiçbiri"
@@ -3208,11 +3372,15 @@ msgstr "Sil"
msgid "workspace.shape.menu.delete-flow-start"
msgstr "Akış başlangıcını sil"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.detach-instance"
msgstr "Örneği ayır"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.detach-instances-in-bulk"
msgstr "Örnekleri ayır"
@@ -3253,7 +3421,8 @@ msgstr "Öne getir"
msgid "workspace.shape.menu.front"
msgstr "En öne getir"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.go-main"
msgstr "Ana bileşen dosyasına git"
@@ -3275,18 +3444,22 @@ msgstr "Kesişme"
msgid "workspace.shape.menu.lock"
msgstr "Kilitle"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.mask"
msgstr "Maskele"
#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.paste"
msgstr "Yapıştır"
msgid "workspace.shape.menu.path"
msgstr "Yol"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.reset-overrides"
msgstr "Geçersiz kılmaları sıfırla"
@@ -3298,7 +3471,8 @@ msgstr "Katman seç"
msgid "workspace.shape.menu.show"
msgstr "Göster"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.show-main"
msgstr "Ana bileşeni göster"
@@ -3320,11 +3494,15 @@ msgstr "Kilidi aç"
msgid "workspace.shape.menu.unmask"
msgstr "Maskelemeyi kaldır"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.update-components-in-bulk"
msgstr "Ana bileşenleri güncelle"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs,
#: src/app/main/ui/workspace/context_menu.cljs,
#: src/app/main/ui/workspace/context_menu.cljs
msgid "workspace.shape.menu.update-main"
msgstr "Ana bileşeni güncelle"
@@ -3336,6 +3514,30 @@ msgstr "Geçmiş (%s)"
msgid "workspace.sidebar.layers"
msgstr "Katmanlar"
msgid "workspace.sidebar.layers.components"
msgstr "Bileşenler"
msgid "workspace.sidebar.layers.frames"
msgstr "Çalışma yüzeyleri"
msgid "workspace.sidebar.layers.groups"
msgstr "Gruplar"
msgid "workspace.sidebar.layers.images"
msgstr "Görseller"
msgid "workspace.sidebar.layers.masks"
msgstr "Maskeler"
msgid "workspace.sidebar.layers.search"
msgstr "Katmanları ara"
msgid "workspace.sidebar.layers.shapes"
msgstr "Şekiller"
msgid "workspace.sidebar.layers.texts"
msgstr "Metinler"
#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/handoff/attributes/svg.cljs
msgid "workspace.sidebar.options.svg-attrs.title"
msgstr "İçe Aktarılan SVG Öznitelikleri"

View File

@@ -672,22 +672,6 @@ msgstr "想说两句来Gitter和我们聊聊"
msgid "feedback.description"
msgstr "描述"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "前往讨论"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "加入Penpot团队协作交流论坛。"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle2"
msgstr "你可以提问、回答问题,来一场开放的对话,并对影响项目的决策保持关注。"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "团队讨论"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.subject"
msgstr "话题"

View File

@@ -607,18 +607,6 @@ msgstr "加入聊天"
msgid "feedback.description"
msgstr "狀況描述"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-go-to"
msgstr "前往討論"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-subtitle1"
msgstr "加入 Penpot 團隊的協作溝通論壇。"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.discussions-title"
msgstr "團隊討論"
#: src/app/main/ui/settings/feedback.cljs
msgid "feedback.title"
msgstr "電子郵件"

View File

@@ -1 +1 @@
1.13.0-beta
1.13.2-beta