Merge pull request #3075 from penpot/alotor-bugfixes-9

Alotor bugfixes 9
This commit is contained in:
Alejandro 2023-03-28 09:08:45 +02:00 committed by GitHub
commit 88db456127
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 164 additions and 72 deletions

View File

@ -54,6 +54,10 @@
- Fix problem with guides not showing when moving over nested frames [Taiga #4905](https://tree.taiga.io/project/penpot/issue/4905) - Fix problem with guides not showing when moving over nested frames [Taiga #4905](https://tree.taiga.io/project/penpot/issue/4905)
- Fix change email and password for users signed in via social login [Taiga #4273](https://tree.taiga.io/project/penpot/issue/4273) - Fix change email and password for users signed in via social login [Taiga #4273](https://tree.taiga.io/project/penpot/issue/4273)
- Fix drag and drop files from browser or file explorer under circumstances [Taiga #5054](https://tree.taiga.io/project/penpot/issue/5054) - Fix drag and drop files from browser or file explorer under circumstances [Taiga #5054](https://tree.taiga.io/project/penpot/issue/5054)
- Fix problem when copy/pasting shapes [Taiga #4931](https://tree.taiga.io/project/penpot/issue/4931)
- Fix problem with color picker not able to change hue [Taiga #5065](https://tree.taiga.io/project/penpot/issue/5065)
- Fix problem with outer stroke in texts [Taiga #5078](https://tree.taiga.io/project/penpot/issue/5078)
- Fix problem with text carring over next line when changing to fixed [Taiga #5067](https://tree.taiga.io/project/penpot/issue/5067)
### :heart: Community contributions by (Thank you!) ### :heart: Community contributions by (Thank you!)
- To @ondrejkonec: for contributing to the code with: - To @ondrejkonec: for contributing to the code with:

View File

@ -729,8 +729,13 @@
(let [perms (get-permissions conn profile-id team-id) (let [perms (get-permissions conn profile-id team-id)
profile (db/get-by-id conn :profile profile-id) profile (db/get-by-id conn :profile profile-id)
team (db/get-by-id conn :team team-id) team (db/get-by-id conn :team team-id)
emails (cond-> (or emails #{}) (string? email) (conj email))]
;; Members emails. We don't re-send inviation to already existing members
member? (into #{}
(map :email)
(db/exec! conn [sql:team-members team-id]))
emails (cond-> (or emails #{}) (string? email) (conj email))]
(run! (partial quotes/check-quote! conn) (run! (partial quotes/check-quote! conn)
(list {::quotes/id ::quotes/invitations-per-team (list {::quotes/id ::quotes/invitations-per-team
@ -754,6 +759,7 @@
(let [cfg (assoc cfg ::db/conn conn) (let [cfg (assoc cfg ::db/conn conn)
invitations (->> emails invitations (->> emails
(remove member?)
(map (fn [email] (map (fn [email]
{:email (str/lower email) {:email (str/lower email)
:team team :team team

View File

@ -17,6 +17,7 @@
[app.common.geom.shapes.modifiers :as gsm] [app.common.geom.shapes.modifiers :as gsm]
[app.common.geom.shapes.path :as gsp] [app.common.geom.shapes.path :as gsp]
[app.common.geom.shapes.rect :as gpr] [app.common.geom.shapes.rect :as gpr]
[app.common.geom.shapes.text :as gst]
[app.common.geom.shapes.transforms :as gtr] [app.common.geom.shapes.transforms :as gtr]
[app.common.math :as mth])) [app.common.math :as mth]))
@ -195,3 +196,6 @@
;; Modifiers ;; Modifiers
(dm/export gsm/set-objects-modifiers) (dm/export gsm/set-objects-modifiers)
;; Text
(dm/export gst/position-data-selrect)

View File

@ -645,12 +645,16 @@
(recur matrix (next modifiers))))))) (recur matrix (next modifiers)))))))
(defn transform-text-node [value attrs] (defn transform-text-node [value attrs]
(let [font-size (-> (get attrs :font-size 14) (let [font-size (-> (get attrs :font-size 14) d/parse-double (* value) str)
(d/parse-double) letter-spacing (-> (get attrs :letter-spacing 0) d/parse-double (* value) str)]
(* value) (d/txt-merge attrs {:font-size font-size
(str))] :letter-spacing letter-spacing})))
(defn transform-paragraph-node [value attrs]
(let [font-size (-> (get attrs :font-size 14) d/parse-double (* value) str)]
(d/txt-merge attrs {:font-size font-size}))) (d/txt-merge attrs {:font-size font-size})))
(defn update-text-content (defn update-text-content
[shape scale-text-content value] [shape scale-text-content value]
(update shape :content scale-text-content value)) (update shape :content scale-text-content value))
@ -661,9 +665,8 @@
(letfn [(scale-text-content (letfn [(scale-text-content
[content value] [content value]
(->> content (->> content
(txt/transform-nodes (txt/transform-nodes txt/is-text-node? (partial transform-text-node value))
txt/is-text-node? (txt/transform-nodes txt/is-paragraph-node? (partial transform-paragraph-node value))))
(partial transform-text-node value))))
(apply-scale-content (apply-scale-content
[shape value] [shape value]
@ -671,7 +674,7 @@
(cph/text-shape? shape) (cph/text-shape? shape)
(update-text-content scale-text-content value) (update-text-content scale-text-content value)
(cph/rect-shape? shape) :always
(gsc/update-corners-scale value) (gsc/update-corners-scale value)
(d/not-empty? (:strokes shape)) (d/not-empty? (:strokes shape))

View File

@ -1326,14 +1326,19 @@
res))) res)))
(maybe-translate [shape objects selected+children] (maybe-translate [shape objects selected+children]
(let [root-frame-id (cph/get-shape-id-root-frame objects (:id shape))] (let [frame-id (:frame-id shape)
(if (and (not (cph/root-frame? shape)) root-frame-id (cph/get-shape-id-root-frame objects (:id shape))]
(not (contains? selected+children root-frame-id))) (cond
;; When the parent frame is not selected we change to relative (cph/root-frame? shape) shape
;; coordinates (contains? selected+children root-frame-id) shape
(cph/frame-shape? shape)
(let [frame (get objects root-frame-id)] (let [frame (get objects root-frame-id)]
(gsh/translate-to-frame shape frame)) (gsh/translate-to-frame shape frame))
shape)))
:else
(let [frame (get objects frame-id)]
(gsh/translate-to-frame shape frame)))))
(on-copy-error [error] (on-copy-error [error]
(js/console.error "Clipboard blocked:" error) (js/console.error "Clipboard blocked:" error)

View File

@ -377,7 +377,7 @@
(assoc-in [:workspace-local :edition] (-> selected first :id))))))) (assoc-in [:workspace-local :edition] (-> selected first :id)))))))
(defn not-changed? [old-dim new-dim] (defn not-changed? [old-dim new-dim]
(> (mth/abs (- old-dim new-dim)) 1)) (> (mth/abs (- old-dim new-dim)) 0.1))
(defn commit-resize-text (defn commit-resize-text
[] []

View File

@ -177,7 +177,9 @@
:on-submit on-submit}]] :on-submit on-submit}]]
[:div.action-buttons [:div.action-buttons
[:& fm/submit-button {:label (tr "modals.invite-member-confirm.accept")}]]]])) [:& fm/submit-button {:label (tr "modals.invite-member-confirm.accept")
:disabled (and (boolean (some current-data-emails current-members-emails))
(empty? (remove current-members-emails current-data-emails)))}]]]]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; MEMBERS SECTION ;; MEMBERS SECTION
@ -586,7 +588,8 @@
[:div.empty-invitations [:div.empty-invitations
[:span (tr "labels.no-invitations")] [:span (tr "labels.no-invitations")]
(when can-invite? (when can-invite?
[:span (tr "labels.no-invitations-hint")])]) [:& i18n/tr-html {:label "labels.no-invitations-hint"
:tag-name "span"}])])
(mf/defc invitation-section (mf/defc invitation-section
[{:keys [team invitations] :as props}] [{:keys [team invitations] :as props}]

View File

@ -38,20 +38,27 @@
[:use {:href (str "#" shape-id)}]])) [:use {:href (str "#" shape-id)}]]))
(mf/defc outer-stroke-mask (mf/defc outer-stroke-mask
[{:keys [shape render-id index]}] [{:keys [shape stroke render-id index]}]
(let [suffix (if index (str "-" index) "") (let [suffix (if index (str "-" index) "")
stroke-mask-id (str "outer-stroke-" render-id "-" (:id shape) suffix) stroke-mask-id (str "outer-stroke-" render-id "-" (:id shape) suffix)
shape-id (str "stroke-shape-" render-id "-" (:id shape) suffix) shape-id (str "stroke-shape-" render-id "-" (:id shape) suffix)
stroke-width (case (:stroke-alignment shape :center) stroke-width (case (:stroke-alignment stroke :center)
:center (/ (:stroke-width shape 0) 2) :center (/ (:stroke-width stroke 0) 2)
:outer (:stroke-width shape 0) :outer (:stroke-width stroke 0)
0) 0)
margin (gsb/shape-stroke-margin shape stroke-width) margin (gsb/shape-stroke-margin stroke stroke-width)
bounding-box (-> (gsh/points->selrect (:points shape))
(update :x - (+ stroke-width margin)) selrect
(update :y - (+ stroke-width margin)) (if (cph/text-shape? shape)
(update :width + (* 2 (+ stroke-width margin))) (gsh/position-data-selrect shape)
(update :height + (* 2 (+ stroke-width margin))))] (gsh/points->selrect (:points shape)))
bounding-box
(-> selrect
(update :x - (+ stroke-width margin))
(update :y - (+ stroke-width margin))
(update :width + (* 2 (+ stroke-width margin)))
(update :height + (* 2 (+ stroke-width margin))))]
[:mask {:id stroke-mask-id [:mask {:id stroke-mask-id
:x (:x bounding-box) :x (:x bounding-box)
@ -67,17 +74,17 @@
:stroke "none"}}]])) :stroke "none"}}]]))
(mf/defc cap-markers (mf/defc cap-markers
[{:keys [shape render-id index]}] [{:keys [stroke render-id index]}]
(let [marker-id-prefix (str "marker-" render-id) (let [marker-id-prefix (str "marker-" render-id)
cap-start (:stroke-cap-start shape) cap-start (:stroke-cap-start stroke)
cap-end (:stroke-cap-end shape) cap-end (:stroke-cap-end stroke)
stroke-color (if (:stroke-color-gradient shape) stroke-color (if (:stroke-color-gradient stroke)
(str/format "url(#%s)" (str "stroke-color-gradient_" render-id "_" index)) (str/format "url(#%s)" (str "stroke-color-gradient_" render-id "_" index))
(:stroke-color shape)) (:stroke-color stroke))
stroke-opacity (when-not (:stroke-color-gradient shape) stroke-opacity (when-not (:stroke-color-gradient stroke)
(:stroke-opacity shape))] (:stroke-opacity stroke))]
[:* [:*
(when (or (= cap-start :line-arrow) (= cap-end :line-arrow)) (when (or (= cap-start :line-arrow) (= cap-end :line-arrow))
@ -169,36 +176,37 @@
[:rect {:x 3 :y 2.5 :width 0.5 :height 1}]])])) [:rect {:x 3 :y 2.5 :width 0.5 :height 1}]])]))
(mf/defc stroke-defs (mf/defc stroke-defs
[{:keys [shape render-id index]}] [{:keys [shape stroke render-id index]}]
(let [open-path? (and (= :path (:type shape)) (gsh/open-path? shape))] (let [open-path? (and (= :path (:type shape)) (gsh/open-path? shape))]
[:* [:*
(cond (some? (:stroke-color-gradient shape)) (cond (some? (:stroke-color-gradient stroke))
(case (:type (:stroke-color-gradient shape)) (case (:type (:stroke-color-gradient stroke))
:linear [:> grad/linear-gradient #js {:id (str (name :stroke-color-gradient) "_" render-id "_" index) :linear [:> grad/linear-gradient #js {:id (str (name :stroke-color-gradient) "_" render-id "_" index)
:gradient (:stroke-color-gradient shape) :gradient (:stroke-color-gradient stroke)
:shape shape}] :shape shape}]
:radial [:> grad/radial-gradient #js {:id (str (name :stroke-color-gradient) "_" render-id "_" index) :radial [:> grad/radial-gradient #js {:id (str (name :stroke-color-gradient) "_" render-id "_" index)
:gradient (:stroke-color-gradient shape) :gradient (:stroke-color-gradient stroke)
:shape shape}])) :shape shape}]))
(cond (cond
(and (not open-path?) (and (not open-path?)
(= :inner (:stroke-alignment shape :center)) (= :inner (:stroke-alignment stroke :center))
(> (:stroke-width shape 0) 0)) (> (:stroke-width stroke 0) 0))
[:& inner-stroke-clip-path {:shape shape [:& inner-stroke-clip-path {:shape shape
:render-id render-id :render-id render-id
:index index}] :index index}]
(and (not open-path?) (and (not open-path?)
(= :outer (:stroke-alignment shape :center)) (= :outer (:stroke-alignment stroke :center))
(> (:stroke-width shape 0) 0)) (> (:stroke-width stroke 0) 0))
[:& outer-stroke-mask {:shape shape [:& outer-stroke-mask {:shape shape
:stroke stroke
:render-id render-id :render-id render-id
:index index}] :index index}]
(or (some? (:stroke-cap-start shape)) (or (some? (:stroke-cap-start stroke))
(some? (:stroke-cap-end shape))) (some? (:stroke-cap-end stroke)))
[:& cap-markers {:shape shape [:& cap-markers {:stroke stroke
:render-id render-id :render-id render-id
:index index}])])) :index index}])]))
@ -216,8 +224,9 @@
base-props (obj/get child "props") base-props (obj/get child "props")
elem-name (obj/get child "type") elem-name (obj/get child "type")
shape (obj/get props "shape") shape (obj/get props "shape")
stroke (obj/get props "stroke")
index (obj/get props "index") index (obj/get props "index")
stroke-width (:stroke-width shape) stroke-width (:stroke-width stroke)
suffix (if index (str "-" index) "") suffix (if index (str "-" index) "")
stroke-mask-id (str "outer-stroke-" render-id "-" (:id shape) suffix) stroke-mask-id (str "outer-stroke-" render-id "-" (:id shape) suffix)
@ -225,7 +234,7 @@
[:g.outer-stroke-shape [:g.outer-stroke-shape
[:defs [:defs
[:& stroke-defs {:shape shape :render-id render-id :index index}] [:& stroke-defs {:shape shape :stroke stroke :render-id render-id :index index}]
[:> elem-name (-> (obj/clone base-props) [:> elem-name (-> (obj/clone base-props)
(obj/set! "id" shape-id) (obj/set! "id" shape-id)
(obj/set! (obj/set!
@ -258,10 +267,11 @@
base-props (obj/get child "props") base-props (obj/get child "props")
elem-name (obj/get child "type") elem-name (obj/get child "type")
shape (obj/get props "shape") shape (obj/get props "shape")
stroke (obj/get props "stroke")
index (obj/get props "index") index (obj/get props "index")
transform (obj/get base-props "transform") transform (obj/get base-props "transform")
stroke-width (:stroke-width shape 0) stroke-width (:stroke-width stroke 0)
suffix (if index (str "-" index) "") suffix (if index (str "-" index) "")
clip-id (str "inner-stroke-" render-id "-" (:id shape) suffix) clip-id (str "inner-stroke-" render-id "-" (:id shape) suffix)
@ -275,7 +285,7 @@
[:g.inner-stroke-shape {:transform transform} [:g.inner-stroke-shape {:transform transform}
[:defs [:defs
[:& stroke-defs {:shape shape :render-id render-id :index index}] [:& stroke-defs {:shape shape :stroke stroke :render-id render-id :index index}]
[:> elem-name shape-props]] [:> elem-name shape-props]]
[:use {:href (str "#" shape-id) [:use {:href (str "#" shape-id)
@ -290,33 +300,34 @@
{::mf/wrap-props false} {::mf/wrap-props false}
[props] [props]
(let [child (obj/get props "children") (let [child (obj/get props "children")
shape (obj/get props "shape") shape (obj/get props "shape")
stroke (obj/get props "stroke")
render-id (mf/use-ctx muc/render-id) render-id (mf/use-ctx muc/render-id)
index (obj/get props "index") index (obj/get props "index")
stroke-width (:stroke-width shape 0) stroke-width (:stroke-width stroke 0)
stroke-style (:stroke-style shape :none) stroke-style (:stroke-style stroke :none)
stroke-position (:stroke-alignment shape :center) stroke-position (:stroke-alignment stroke :center)
has-stroke? (and (> stroke-width 0) has-stroke? (and (> stroke-width 0)
(not= stroke-style :none)) (not= stroke-style :none))
closed? (or (not= :path (:type shape)) closed? (or (not= :path (:type shape)) (not (gsh/open-path? shape)))
(not (gsh/open-path? shape)))
inner? (= :inner stroke-position) inner? (= :inner stroke-position)
outer? (= :outer stroke-position)] outer? (= :outer stroke-position)]
(cond (cond
(and has-stroke? inner? closed?) (and has-stroke? inner? closed?)
[:& inner-stroke {:shape shape :index index} [:& inner-stroke {:shape shape :stroke stroke :index index}
child] child]
(and has-stroke? outer? closed?) (and has-stroke? outer? closed?)
[:& outer-stroke {:shape shape :index index} [:& outer-stroke {:shape shape :stroke stroke :index index}
child] child]
:else :else
[:g.stroke-shape [:g.stroke-shape
[:defs [:defs
[:& stroke-defs {:shape shape :render-id render-id :index index}]] [:& stroke-defs {:shape shape :stroke stroke :render-id render-id :index index}]]
child]))) child])))
(defn build-fill-props [shape child position render-id] (defn build-fill-props [shape child position render-id]
@ -426,6 +437,7 @@
[props] [props]
(let [child (obj/get props "children") (let [child (obj/get props "children")
shape (obj/get props "shape") shape (obj/get props "shape")
elem-name (obj/get child "type") elem-name (obj/get child "type")
render-id (or (obj/get props "render-id") (mf/use-ctx muc/render-id)) render-id (or (obj/get props "render-id") (mf/use-ctx muc/render-id))
stroke-id (dm/fmt "strokes-%" (:id shape)) stroke-id (dm/fmt "strokes-%" (:id shape))
@ -445,9 +457,8 @@
(d/not-empty? (:strokes shape)) (d/not-empty? (:strokes shape))
[:> :g stroke-props [:> :g stroke-props
(for [[index value] (-> (d/enumerate (:strokes shape)) reverse)] (for [[index value] (-> (d/enumerate (:strokes shape)) reverse)]
(let [props (build-stroke-props index child value render-id) (let [props (build-stroke-props index child value render-id)]
shape (assoc value :points (:points shape))] [:& shape-custom-stroke {:shape shape :stroke value :index index :key (dm/str index "-" stroke-id)}
[:& shape-custom-stroke {:shape shape :index index :key (dm/str index "-" stroke-id)}
[:> elem-name props]]))])])) [:> elem-name props]]))])]))
(mf/defc shape-custom-strokes (mf/defc shape-custom-strokes

View File

@ -67,7 +67,8 @@
(mf/use-fn (mf/use-fn
(mf/deps current-color @drag?) (mf/deps current-color @drag?)
(fn [color] (fn [color]
(when (not= (str/lower (:hex color)) (str/lower (:hex current-color))) (when (or (not= (str/lower (:hex color)) (str/lower (:hex current-color)))
(not= (:h color) (:h current-color)))
(let [recent-color (merge current-color color) (let [recent-color (merge current-color color)
recent-color (dc/materialize-color-components recent-color)] recent-color (dc/materialize-color-components recent-color)]
(st/emit! (dc/update-colorpicker-color recent-color (not @drag?))))))) (st/emit! (dc/update-colorpicker-color recent-color (not @drag?)))))))

View File

@ -15,6 +15,7 @@
[app.main.data.modal :as modal] [app.main.data.modal :as modal]
[app.main.data.workspace :as dw] [app.main.data.workspace :as dw]
[app.main.data.workspace.colors :as dc] [app.main.data.workspace.colors :as dc]
[app.main.data.workspace.common :as dwc]
[app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.libraries :as dwl]
[app.main.data.workspace.shortcuts :as sc] [app.main.data.workspace.shortcuts :as sc]
[app.main.refs :as refs] [app.main.refs :as refs]
@ -306,12 +307,14 @@
[:li {:on-click #(st/emit! (dw/select-all))} [:li {:on-click #(st/emit! (dw/select-all))}
[:span (tr "workspace.header.menu.select-all")] [:span (tr "workspace.header.menu.select-all")]
[:span.shortcut (sc/get-tooltip :select-all)]] [:span.shortcut (sc/get-tooltip :select-all)]]
[:li {:on-click #(st/emit! (toggle-flag :scale-text))}
[:span [:li {:on-click #(st/emit! dwc/undo)}
(if (contains? layout :scale-text) [:span (tr "workspace.header.menu.undo")]
(tr "workspace.header.menu.disable-scale-text") [:span.shortcut (sc/get-tooltip :undo)]]
(tr "workspace.header.menu.enable-scale-text"))]
[:span.shortcut (sc/get-tooltip :toggle-scale-text)]]]] [:li {:on-click #(st/emit! dwc/redo)}
[:span (tr "workspace.header.menu.redo")]
[:span.shortcut (sc/get-tooltip :redo)]]]]
[:& dropdown {:show (= @show-sub-menu? :view) [:& dropdown {:show (= @show-sub-menu? :view)
:on-close #(reset! show-sub-menu? false)} :on-close #(reset! show-sub-menu? false)}
@ -374,6 +377,13 @@
[:& dropdown {:show (= @show-sub-menu? :preferences) [:& dropdown {:show (= @show-sub-menu? :preferences)
:on-close #(reset! show-sub-menu? false)} :on-close #(reset! show-sub-menu? false)}
[:ul.sub-menu.preferences [:ul.sub-menu.preferences
[:li {:on-click #(st/emit! (toggle-flag :scale-text))}
[:span
(if (contains? layout :scale-text)
(tr "workspace.header.menu.disable-scale-content")
(tr "workspace.header.menu.enable-scale-content"))]
[:span.shortcut (sc/get-tooltip :toggle-scale-text)]]
[:li {:on-click #(st/emit! (toggle-flag :snap-guides))} [:li {:on-click #(st/emit! (toggle-flag :snap-guides))}
[:span [:span
(if (contains? layout :snap-guides) (if (contains? layout :snap-guides)

View File

@ -66,7 +66,8 @@
(when (contains? #{:auto-height :auto-width} grow-type) (when (contains? #{:auto-height :auto-width} grow-type)
(let [{:keys [width height]} (let [{:keys [width height]}
(-> (dom/query node ".paragraph-set") (-> (dom/query node ".paragraph-set")
(dom/get-client-size)) (dom/get-bounding-rect))
width (mth/ceil width) width (mth/ceil width)
height (mth/ceil height)] height (mth/ceil height)]
(when (and (not (mth/almost-zero? width)) (when (and (not (mth/almost-zero? width))

View File

@ -1304,6 +1304,7 @@ msgid "labels.no-invitations"
msgstr "لا توجد دعوات." msgstr "لا توجد دعوات."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "اضغط على الزر \"دعوة إلى الفريق\" لدعوة المزيد من الأعضاء إلى هذا الفريق." msgstr "اضغط على الزر \"دعوة إلى الفريق\" لدعوة المزيد من الأعضاء إلى هذا الفريق."

View File

@ -1298,6 +1298,7 @@ msgid "labels.no-invitations"
msgstr "No hi ha invitacions." msgstr "No hi ha invitacions."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Feu clic al botó «Convida a l'equip» per convidar més membres a aquest " "Feu clic al botó «Convida a l'equip» per convidar més membres a aquest "

View File

@ -1197,6 +1197,7 @@ msgid "labels.no-invitations"
msgstr "Nejsou žádné pozvánky." msgstr "Nejsou žádné pozvánky."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Chcete-li do tohoto týmu pozvat další členy, stiskněte tlačítko „Pozvat do " "Chcete-li do tohoto týmu pozvat další členy, stiskněte tlačítko „Pozvat do "

View File

@ -1337,6 +1337,7 @@ msgid "labels.no-invitations"
msgstr "Es gibt keine Einladungen." msgstr "Es gibt keine Einladungen."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Drücken Sie die Schaltfläche \"Zum Team einladen\", um weitere Mitglieder " "Drücken Sie die Schaltfläche \"Zum Team einladen\", um weitere Mitglieder "

View File

@ -1379,6 +1379,7 @@ msgid "labels.no-invitations"
msgstr "No pending invitations." msgstr "No pending invitations."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "Click the **Invite people** button to invite people to this team." msgstr "Click the **Invite people** button to invite people to this team."
@ -3049,6 +3050,18 @@ msgstr "Show rulers"
msgid "workspace.header.menu.show-textpalette" msgid "workspace.header.menu.show-textpalette"
msgstr "Show fonts palette" msgstr "Show fonts palette"
msgid "workspace.header.menu.enable-scale-content"
msgstr "Enable proportional scale"
msgid "workspace.header.menu.disable-scale-content"
msgstr "Disable proportional scale"
msgid "workspace.header.menu.undo"
msgstr "Undo"
msgid "workspace.header.menu.redo"
msgstr "Redo"
#: src/app/main/ui/workspace/header.cljs #: src/app/main/ui/workspace/header.cljs
msgid "workspace.header.reset-zoom" msgid "workspace.header.reset-zoom"
msgstr "Reset" msgstr "Reset"

View File

@ -1450,6 +1450,7 @@ msgid "labels.no-invitations"
msgstr "No hay invitaciones." msgstr "No hay invitaciones."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "Pulsa el botón 'Invitar al equipo' para añadir más integrantes al equipo." msgstr "Pulsa el botón 'Invitar al equipo' para añadir más integrantes al equipo."
@ -3212,6 +3213,18 @@ msgstr "Mostrar reglas"
msgid "workspace.header.menu.show-textpalette" msgid "workspace.header.menu.show-textpalette"
msgstr "Mostrar paleta de textos" msgstr "Mostrar paleta de textos"
msgid "workspace.header.menu.enable-scale-content"
msgstr "Activar escala proporcional"
msgid "workspace.header.menu.disable-scale-content"
msgstr "Desactivar escala proporcional"
msgid "workspace.header.menu.undo"
msgstr "Deshacer"
msgid "workspace.header.menu.redo"
msgstr "Rehacer"
#: src/app/main/ui/workspace/header.cljs #: src/app/main/ui/workspace/header.cljs
msgid "workspace.header.reset-zoom" msgid "workspace.header.reset-zoom"
msgstr "Restablecer" msgstr "Restablecer"

View File

@ -1294,6 +1294,7 @@ msgid "labels.no-invitations"
msgstr "Ez dago gonbidapenik." msgstr "Ez dago gonbidapenik."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "Sakatu 'Taldera gonbdiatu' taldekide gehiago izateko." msgstr "Sakatu 'Taldera gonbdiatu' taldekide gehiago izateko."

View File

@ -1289,6 +1289,7 @@ msgid "labels.no-invitations"
msgstr "هیچ دعوتنامه‌ای وجود ندارد." msgstr "هیچ دعوتنامه‌ای وجود ندارد."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "دکمه \"دعوت به تیم\" را فشار دهید تا اعضای بیشتری را به این تیم دعوت کنید." msgstr "دکمه \"دعوت به تیم\" را فشار دهید تا اعضای بیشتری را به این تیم دعوت کنید."

View File

@ -1339,6 +1339,7 @@ msgid "labels.no-invitations"
msgstr "Il n'y a pas d'invitations." msgstr "Il n'y a pas d'invitations."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Appuyez sur le bouton \"Inviter à l'équipe\" pour inviter d'autres membres " "Appuyez sur le bouton \"Inviter à l'équipe\" pour inviter d'autres membres "

View File

@ -1301,6 +1301,7 @@ msgid "labels.no-invitations"
msgstr "אין הזמנות." msgstr "אין הזמנות."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "לחיצה על הכפתור „הזמנה לצוות” תאפשר להזמין חברים נוספים לצוות הזה." msgstr "לחיצה על הכפתור „הזמנה לצוות” תאפשר להזמין חברים נוספים לצוות הזה."

View File

@ -1289,6 +1289,7 @@ msgid "labels.no-invitations"
msgstr "Nema pozivnica." msgstr "Nema pozivnica."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "Pritisni gumb \"Pozovi u tim\" da pozoveš više članova u ovaj tim." msgstr "Pritisni gumb \"Pozovi u tim\" da pozoveš više članova u ovaj tim."

View File

@ -1195,6 +1195,7 @@ msgid "labels.no-invitations"
msgstr "Tidak ada undangan." msgstr "Tidak ada undangan."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Tekan tombol \"Undang ke tim\" untuk mengundang lebih banyak anggota ke tim " "Tekan tombol \"Undang ke tim\" untuk mengundang lebih banyak anggota ke tim "

View File

@ -1294,6 +1294,7 @@ msgid "labels.no-invitations"
msgstr "Non ci sono inviti." msgstr "Non ci sono inviti."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Premi il pulsante \"Invita nel team\" per invitare altri membri in questo " "Premi il pulsante \"Invita nel team\" per invitare altri membri in questo "

View File

@ -1280,6 +1280,7 @@ msgid "labels.no-invitations"
msgstr "Brak zaproszeń." msgstr "Brak zaproszeń."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Naciśnij przycisk „Zaproś do zespołu”, aby zaprosić więcej członków do tego " "Naciśnij przycisk „Zaproś do zespołu”, aby zaprosić więcej członków do tego "

View File

@ -1295,6 +1295,7 @@ msgid "labels.no-invitations"
msgstr "Não há convites." msgstr "Não há convites."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Pressione o botão \"Convidar para equipe\" para convidar mais membros para " "Pressione o botão \"Convidar para equipe\" para convidar mais membros para "

View File

@ -1298,6 +1298,7 @@ msgid "labels.no-invitations"
msgstr "Não há convites." msgstr "Não há convites."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Clica no botão \"Convidar para a equipa\" para convidar mais membros para " "Clica no botão \"Convidar para a equipa\" para convidar mais membros para "

View File

@ -1291,6 +1291,7 @@ msgid "labels.no-invitations"
msgstr "Nu există invitații." msgstr "Nu există invitații."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Apăsați butonul „Invitați în echipă” pentru a invita mai mulți membri în " "Apăsați butonul „Invitați în echipă” pentru a invita mai mulți membri în "

View File

@ -1278,6 +1278,7 @@ msgid "labels.no-invitations"
msgstr "Приглашений нет." msgstr "Приглашений нет."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Нажмите кнопку «Пригласить в команду», чтобы пригласить в эту команду " "Нажмите кнопку «Пригласить в команду», чтобы пригласить в эту команду "

View File

@ -1324,6 +1324,7 @@ msgid "labels.no-invitations"
msgstr "Davet yok." msgstr "Davet yok."
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "" msgstr ""
"Bu takıma daha fazla üye davet etmek için \"Takıma davet et\" düğmesine " "Bu takıma daha fazla üye davet etmek için \"Takıma davet et\" düğmesine "

View File

@ -1252,6 +1252,7 @@ msgid "labels.no-invitations"
msgstr "没有邀请。" msgstr "没有邀请。"
#: src/app/main/ui/dashboard/team.cljs #: src/app/main/ui/dashboard/team.cljs
#, markdown
msgid "labels.no-invitations-hint" msgid "labels.no-invitations-hint"
msgstr "点击\"邀请加入团队\",邀请更多成员加入这个团队。" msgstr "点击\"邀请加入团队\",邀请更多成员加入这个团队。"