mirror of
https://github.com/penpot/penpot.git
synced 2025-01-08 07:50:43 -05:00
Merge remote-tracking branch 'origin/staging' into develop
This commit is contained in:
commit
5ee0399615
24 changed files with 118 additions and 418 deletions
|
@ -226,8 +226,8 @@
|
|||
[:priority {:optional true} [:enum :high :low]]
|
||||
[:extra-data {:optional true} ::sm/text]])
|
||||
|
||||
(def ^:private valid-context?
|
||||
(sm/validator schema:context))
|
||||
(def ^:private check-context
|
||||
(sm/check-fn schema:context))
|
||||
|
||||
(defn template-factory
|
||||
[& {:keys [id schema]}]
|
||||
|
@ -236,10 +236,8 @@
|
|||
(sm/check-fn schema)
|
||||
(constantly nil))]
|
||||
(fn [context]
|
||||
(assert (valid-context? context) "expected a valid context")
|
||||
(check-fn context)
|
||||
|
||||
(let [email (build-email-template id context)]
|
||||
(let [context (-> context check-context check-fn)
|
||||
email (build-email-template id context)]
|
||||
(when-not email
|
||||
(ex/raise :type :internal
|
||||
:code :email-template-does-not-exists
|
||||
|
@ -271,7 +269,7 @@
|
|||
"Schedule an already defined email to be sent using asynchronously
|
||||
using worker task."
|
||||
[{:keys [::conn ::factory] :as context}]
|
||||
(assert (db/connection? conn) "expected a valid database connection")
|
||||
(assert (db/connectable? conn) "expected a valid database connection or pool")
|
||||
|
||||
(let [email (if factory
|
||||
(factory context)
|
||||
|
@ -348,7 +346,7 @@
|
|||
[:subject ::sm/text]
|
||||
[:content ::sm/text]])
|
||||
|
||||
(def feedback
|
||||
(def user-feedback
|
||||
"A profile feedback email."
|
||||
(template-factory
|
||||
:id ::feedback
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
[app.rpc.doc :as-alias doc]
|
||||
[app.util.services :as sv]))
|
||||
|
||||
(declare ^:private send-feedback!)
|
||||
(declare ^:private send-user-feedback!)
|
||||
|
||||
(def ^:private schema:send-user-feedback
|
||||
[:map {:title "send-user-feedback"}
|
||||
|
@ -34,14 +34,16 @@
|
|||
:hint "feedback not enabled"))
|
||||
|
||||
(let [profile (profile/get-profile pool profile-id)]
|
||||
(send-feedback! pool profile params)
|
||||
(send-user-feedback! pool profile params)
|
||||
nil))
|
||||
|
||||
(defn- send-feedback!
|
||||
(defn- send-user-feedback!
|
||||
[pool profile params]
|
||||
(let [dest (cf/get :feedback-destination)]
|
||||
(let [dest (or (cf/get :user-feedback-destination)
|
||||
;; LEGACY
|
||||
(cf/get :feedback-destination))]
|
||||
(eml/send! {::eml/conn pool
|
||||
::eml/factory eml/feedback
|
||||
::eml/factory eml/user-feedback
|
||||
:from dest
|
||||
:to dest
|
||||
:profile profile
|
||||
|
|
3
frontend/resources/images/icons/board-2.svg
Normal file
3
frontend/resources/images/icons/board-2.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3.5 3.5h-2m2 0v-2m0 2h9m-9 0v9m9-9v-2m0 2h2m-2 0v9m0 0h2m-2 0v2m0-2h-9m0 0v2m0-2h-2"/>
|
||||
</svg>
|
After Width: | Height: | Size: 214 B |
|
@ -450,7 +450,9 @@
|
|||
(ptk/reify ::update-team
|
||||
ptk/UpdateEvent
|
||||
(update [_ state]
|
||||
(assoc-in state [:teams id :name] name))
|
||||
(-> state
|
||||
(assoc-in [:teams id :name] name)
|
||||
(assoc-in [:team :name] name)))
|
||||
|
||||
ptk/WatchEvent
|
||||
(watch [_ _ _]
|
||||
|
|
|
@ -338,7 +338,7 @@
|
|||
;; used to render thumbnails on assets panel.
|
||||
(mf/defc component-svg
|
||||
{::mf/wrap [mf/memo #(mf/deferred % ts/idle-then-raf)]}
|
||||
[{:keys [objects root-shape show-grids? zoom class] :or {zoom 1} :as props}]
|
||||
[{:keys [objects root-shape show-grids? is-hidden zoom class] :or {zoom 1} :as props}]
|
||||
(when root-shape
|
||||
(let [root-shape-id (:id root-shape)
|
||||
include-metadata (mf/use-ctx export/include-metadata-ctx)
|
||||
|
@ -381,13 +381,14 @@
|
|||
:xmlns:penpot (when include-metadata "https://penpot.app/xmlns")
|
||||
:fill "none"}
|
||||
|
||||
[:*
|
||||
[:> shape-container {:shape root-shape'}
|
||||
[:& (mf/provider muc/is-component?) {:value true}
|
||||
[:& root-shape-wrapper {:shape root-shape' :view-box vbox}]]]
|
||||
(when-not is-hidden
|
||||
[:*
|
||||
[:> shape-container {:shape root-shape'}
|
||||
[:& (mf/provider muc/is-component?) {:value true}
|
||||
[:& root-shape-wrapper {:shape root-shape' :view-box vbox}]]]
|
||||
|
||||
(when show-grids?
|
||||
[:& empty-grids {:root-shape-id root-shape-id :objects objects}])]])))
|
||||
(when show-grids?
|
||||
[:& empty-grids {:root-shape-id root-shape-id :objects objects}])])])))
|
||||
|
||||
(mf/defc component-svg-thumbnail
|
||||
{::mf/wrap [mf/memo #(mf/deferred % ts/idle-then-raf)]}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
[app.common.types.component :as ctk]
|
||||
[app.common.types.shape :as cts]
|
||||
[app.common.types.shape.layout :as ctl]
|
||||
[app.config :as cf]
|
||||
[app.main.ui.icons :as i]
|
||||
[rumext.v2 :as mf]))
|
||||
|
||||
|
@ -31,7 +32,7 @@
|
|||
i/flex-grid
|
||||
|
||||
:else
|
||||
i/board)
|
||||
(if (cf/external-feature-flag "boards-01" "test") i/board-2 i/board))
|
||||
;; TODO -> THUMBNAIL ICON
|
||||
:image i/img
|
||||
:line (if (cts/has-images? shape) i/img i/path)
|
||||
|
@ -56,7 +57,7 @@
|
|||
(if main-instance?
|
||||
i/component
|
||||
(case type
|
||||
:frame i/board
|
||||
:frame (if (cf/external-feature-flag "boards-01" "test") i/board-2 i/board)
|
||||
:image i/img
|
||||
:shape i/path
|
||||
:text i/text
|
||||
|
|
|
@ -73,7 +73,9 @@
|
|||
{::mf/register modal/components
|
||||
::mf/register-as :team-form}
|
||||
[{:keys [team] :as props}]
|
||||
(let [initial (mf/use-memo (fn [] (or team {})))
|
||||
(let [initial (mf/use-memo (fn []
|
||||
(or (some-> team (select-keys [:name :id]))
|
||||
{})))
|
||||
form (fm/use-form :schema schema:team-form
|
||||
:initial initial)
|
||||
handle-keydown
|
||||
|
|
|
@ -63,6 +63,7 @@
|
|||
(def ^:icon arrow (icon-xref :arrow))
|
||||
(def ^:icon asc-sort (icon-xref :asc-sort))
|
||||
(def ^:icon board (icon-xref :board))
|
||||
(def ^:icon board-2 (icon-xref :board-2))
|
||||
(def ^:icon boards-thumbnail (icon-xref :boards-thumbnail))
|
||||
(def ^:icon boolean-difference (icon-xref :boolean-difference))
|
||||
(def ^:icon boolean-exclude (icon-xref :boolean-exclude))
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
"The introduction of our brand new Plugin system allows you to access even richer ecosystem of capabilities."]
|
||||
|
||||
[:p {:class (stl/css :feature-content)}
|
||||
"We are beyond excitement about how this will further involve the Penpot community in building the best design and prototyping platform."]
|
||||
"We are beyond excited about how this will further involve the Penpot community in building the best design and prototyping platform."]
|
||||
|
||||
[:p {:class (stl/css :feature-content)}
|
||||
"Let’s dive in!"]]
|
||||
|
@ -69,7 +69,7 @@
|
|||
"Penpot Plugins encourage developers to easily customize and expand the platform using standard web technologies like JavaScript, CSS, and HTML."]
|
||||
|
||||
[:p {:class (stl/css :feature-content)}
|
||||
"Find everything you need in ouor full comprehensive documentation to start building your plugins now!"]]
|
||||
"Find everything you need in our full comprehensive documentation to start building your plugins now!"]]
|
||||
|
||||
[:div {:class (stl/css :navigation)}
|
||||
[:& c/navigation-bullets
|
||||
|
@ -101,7 +101,7 @@
|
|||
"Be sure to keep an eye on our evolving " [:a {:href "https://penpot.app/penpothub" :target "_blank"} "Penpot Hub"] " to pick the ones that are best suited to enhance your workflow."]
|
||||
|
||||
[:p {:class (stl/css :feature-content)}
|
||||
"This is just the beginning of a myriad of possibilities. Let’s build this community together <3."]]
|
||||
"This is just the beginning of a myriad of possibilities. Let’s build this community together ❤️."]]
|
||||
|
||||
[:div {:class (stl/css :navigation)}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
[app.main.data.workspace.libraries :as dwl]
|
||||
[app.main.data.workspace.shortcuts :as sc]
|
||||
[app.main.data.workspace.undo :as dwu]
|
||||
[app.main.data.workspace.versions :as dwv]
|
||||
[app.main.features :as features]
|
||||
[app.main.refs :as refs]
|
||||
[app.main.store :as st]
|
||||
|
@ -537,6 +538,19 @@
|
|||
(when (kbd/enter? event)
|
||||
(on-show-version-history event))))
|
||||
|
||||
on-pin-version
|
||||
(mf/use-fn
|
||||
(mf/deps file-id)
|
||||
(fn [_]
|
||||
(st/emit! (dwv/create-version file-id))))
|
||||
|
||||
on-pin-version-key-down
|
||||
(mf/use-fn
|
||||
(mf/deps on-pin-version)
|
||||
(fn [event]
|
||||
(when (kbd/enter? event)
|
||||
(on-pin-version event))))
|
||||
|
||||
on-export-shapes
|
||||
(mf/use-fn #(st/emit! (de/show-workspace-export-dialog {:origin "workspace:menu"})))
|
||||
|
||||
|
@ -599,6 +613,15 @@
|
|||
[:span {:class (stl/css :item-name)}
|
||||
(tr "dashboard.add-shared")]]))
|
||||
|
||||
[:div {:class (stl/css :separator)}]
|
||||
|
||||
[:> dropdown-menu-item* {:class (stl/css :submenu-item)
|
||||
:on-click on-pin-version
|
||||
:on-key-down on-pin-version-key-down
|
||||
:id "file-menu-show-version-history"}
|
||||
[:span {:class (stl/css :item-name)}
|
||||
(tr "dashboard.create-version-menu")]]
|
||||
|
||||
[:> dropdown-menu-item* {:class (stl/css :submenu-item)
|
||||
:on-click on-show-version-history
|
||||
:on-key-down on-show-version-history-key-down
|
||||
|
@ -606,6 +629,8 @@
|
|||
[:span {:class (stl/css :item-name)}
|
||||
(tr "dashboard.show-version-history")]]
|
||||
|
||||
[:div {:class (stl/css :separator)}]
|
||||
|
||||
[:> dropdown-menu-item* {:class (stl/css :submenu-item)
|
||||
:on-click on-export-shapes
|
||||
:on-key-down on-export-shapes-key-down
|
||||
|
|
|
@ -43,9 +43,12 @@
|
|||
}
|
||||
|
||||
.separator {
|
||||
margin-top: $s-8;
|
||||
border-top: $s-1 solid var(--color-background-quaternary);
|
||||
height: $s-4;
|
||||
border-top: $s-1 solid var(--color-background-secondary);
|
||||
left: calc(-1 * $s-4);
|
||||
margin-top: $s-8;
|
||||
position: relative;
|
||||
width: calc(100% + $s-8);
|
||||
}
|
||||
|
||||
.shortcut {
|
||||
|
|
|
@ -237,15 +237,11 @@
|
|||
[:& comments-sidebar]
|
||||
|
||||
(true? is-history?)
|
||||
[:> tab-switcher* {:tabs #js [#js {:label "History" :id "history" :content versions-tab}
|
||||
#js {:label "Actions" :id "actions" :content history-tab}]
|
||||
:default-selected "history"
|
||||
;;:selected (name section)
|
||||
;;:on-change-tab on-tab-change
|
||||
:class (stl/css :left-sidebar-tabs)
|
||||
;;:action-button-position "start"
|
||||
;;:action-button (mf/html [:& collapse-button {:on-click handle-collapse}])
|
||||
}]
|
||||
[:> tab-switcher*
|
||||
{:tabs #js [#js {:label (tr "workspace.versions.tab.history") :id "history" :content versions-tab}
|
||||
#js {:label (tr "workspace.versions.tab.actions") :id "actions" :content history-tab}]
|
||||
:default-selected "history"
|
||||
:class (stl/css :left-sidebar-tabs)}]
|
||||
|
||||
:else
|
||||
[:> options-toolbox props])]]]))
|
||||
|
|
|
@ -113,4 +113,5 @@ $width-settings-bar-max: $s-500;
|
|||
.versions-tab {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
height: calc(100vh - $s-88);
|
||||
}
|
||||
|
|
|
@ -133,23 +133,23 @@
|
|||
|
||||
options
|
||||
[{:name (tr "workspace.assets.box-filter-all")
|
||||
:id "section-all"
|
||||
:id "all"
|
||||
:handler on-section-filter-change}
|
||||
{:name (tr "workspace.assets.components")
|
||||
:id "section-components"
|
||||
:id "components"
|
||||
:handler on-section-filter-change}
|
||||
|
||||
(when (not components-v2)
|
||||
{:name (tr "workspace.assets.graphics")
|
||||
:id "section-graphics"
|
||||
:id "graphics"
|
||||
:handler on-section-filter-change})
|
||||
|
||||
{:name (tr "workspace.assets.colors")
|
||||
:id "section-colors"
|
||||
:id "colors"
|
||||
:handler on-section-filter-change}
|
||||
|
||||
{:name (tr "workspace.assets.typography")
|
||||
:id "section-typographies"
|
||||
:id "typographies"
|
||||
:handler on-section-filter-change}]]
|
||||
|
||||
[:article {:class (stl/css :assets-bar)}
|
||||
|
|
|
@ -270,7 +270,7 @@
|
|||
(mf/defc component-item-thumbnail
|
||||
"Component that renders the thumbnail image or the original SVG."
|
||||
{::mf/props :obj}
|
||||
[{:keys [file-id root-shape component container class]}]
|
||||
[{:keys [file-id root-shape component container class is-hidden]}]
|
||||
(let [page-id (:main-instance-page component)
|
||||
root-id (:main-instance-id component)
|
||||
retry (mf/use-state 0)
|
||||
|
@ -290,7 +290,8 @@
|
|||
(when (< @retry 3)
|
||||
(inc retry))))]
|
||||
|
||||
(if (and (some? thumbnail-uri) (contains? cf/flags :component-thumbnails))
|
||||
(if (and (some? thumbnail-uri)
|
||||
(contains? cf/flags :component-thumbnails))
|
||||
[:& component-svg-thumbnail
|
||||
{:thumbnail-uri thumbnail-uri
|
||||
:class class
|
||||
|
@ -303,7 +304,8 @@
|
|||
{:root-shape root-shape
|
||||
:class class
|
||||
:objects (:objects container)
|
||||
:show-grids? true}])))
|
||||
:show-grids? true
|
||||
:is-hidden is-hidden}])))
|
||||
|
||||
(defn generate-components-menu-entries
|
||||
[shapes components-v2]
|
||||
|
|
|
@ -171,13 +171,13 @@
|
|||
(when ^boolean dragging?
|
||||
[:div {:class (stl/css :dragging)}])]
|
||||
|
||||
(when visible?
|
||||
[:& cmm/component-item-thumbnail {:file-id file-id
|
||||
:class (stl/css-case :thumbnail true
|
||||
:asset-list-thumbnail (not listing-thumbs?))
|
||||
:root-shape root-shape
|
||||
:component component
|
||||
:container container}])])]))
|
||||
[:& cmm/component-item-thumbnail {:file-id file-id
|
||||
:class (stl/css-case :thumbnail true
|
||||
:asset-list-thumbnail (not listing-thumbs?))
|
||||
:root-shape root-shape
|
||||
:component component
|
||||
:container container
|
||||
:is-hidden (not visible?)}]])]))
|
||||
|
||||
(mf/defc components-group
|
||||
{::mf/wrap-props false}
|
||||
|
|
|
@ -74,14 +74,13 @@
|
|||
|
||||
(mf/defc file-library-content
|
||||
{::mf/wrap-props false}
|
||||
[{:keys [file local? open-status-ref on-clear-selection]}]
|
||||
[{:keys [file local? open-status-ref on-clear-selection filters]}]
|
||||
(let [components-v2 (mf/use-ctx ctx/components-v2)
|
||||
open-status (mf/deref open-status-ref)
|
||||
|
||||
file-id (:id file)
|
||||
project-id (:project-id file)
|
||||
|
||||
filters (mf/use-ctx cmm/assets-filters)
|
||||
filters-section (:section filters)
|
||||
|
||||
filters-term (:term filters)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
(:require
|
||||
[app.common.data :as d]
|
||||
[app.common.data.macros :as dm]
|
||||
[app.config :as cf]
|
||||
[app.main.data.workspace.undo :as dwu]
|
||||
[app.main.refs :as refs]
|
||||
[app.main.store :as st]
|
||||
|
@ -154,7 +155,7 @@
|
|||
:circle i/elipse
|
||||
:text i/text
|
||||
:path i/path
|
||||
:frame i/board
|
||||
:frame (if (cf/external-feature-flag "boards-01" "test") i/board-2 i/board)
|
||||
:group i/group
|
||||
:color i/drop-icon
|
||||
:typography i/text-palette
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
[app.common.files.helpers :as cfh]
|
||||
[app.common.types.shape :as cts]
|
||||
[app.common.uuid :as uuid]
|
||||
[app.config :as cf]
|
||||
[app.main.data.workspace :as dw]
|
||||
[app.main.refs :as refs]
|
||||
[app.main.store :as st]
|
||||
|
@ -335,7 +336,7 @@
|
|||
:on-click add-filter}
|
||||
[:div {:class (stl/css :filter-menu-item-name-wrapper)}
|
||||
[:span {:class (stl/css :filter-menu-item-icon)}
|
||||
i/board]
|
||||
(if (cf/external-feature-flag "boards-01" "test") i/board-2 i/board)]
|
||||
[:span {:class (stl/css :filter-menu-item-name)}
|
||||
(tr "workspace.sidebar.layers.frames")]]
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
|
||||
.version-toolbox {
|
||||
padding: $s-8;
|
||||
height: 100%;
|
||||
display: grid;
|
||||
overflow: hidden;
|
||||
grid-template-rows: auto auto 1fr;
|
||||
}
|
||||
|
||||
.versions-entry-empty {
|
||||
|
@ -49,6 +53,8 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $s-6;
|
||||
overflow: auto;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.version-entry {
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
[app.common.data.macros :as dm]
|
||||
[app.common.geom.point :as gpt]
|
||||
[app.common.media :as cm]
|
||||
[app.config :as cf]
|
||||
[app.main.data.events :as ev]
|
||||
[app.main.data.modal :as modal]
|
||||
[app.main.data.workspace :as dw]
|
||||
|
@ -146,7 +147,7 @@
|
|||
:on-click select-drawtool
|
||||
:data-tool "frame"
|
||||
:data-testid "artboard-btn"}
|
||||
i/board]]
|
||||
(if (cf/external-feature-flag "boards-01" "test") i/board-2 i/board)]]
|
||||
[:li
|
||||
[:button
|
||||
{:title (tr "workspace.toolbar.rect" (sc/get-tooltip :draw-rect))
|
||||
|
|
|
@ -148,9 +148,7 @@
|
|||
(mf/set-ref-val! internal-state initial))
|
||||
|
||||
(mf/with-effect [initial]
|
||||
(if (fn? initial)
|
||||
(swap! form-mutator update :data merge (initial))
|
||||
(swap! form-mutator update :data merge initial)))
|
||||
(swap! form-mutator d/deep-merge initial))
|
||||
|
||||
form-mutator))
|
||||
|
||||
|
|
|
@ -400,6 +400,9 @@ msgstr "Add as Shared Library"
|
|||
msgid "dashboard.show-version-history"
|
||||
msgstr "Version history"
|
||||
|
||||
msgid "dashboard.create-version-menu"
|
||||
msgstr "Pin this version"
|
||||
|
||||
#: src/app/main/ui/settings/profile.cljs:72
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Change email"
|
||||
|
@ -6565,179 +6568,8 @@ msgstr "Open version menu"
|
|||
msgid "workspace.viewport.click-to-close-path"
|
||||
msgstr "Click to close the path"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.create-token"
|
||||
msgstr "Create new %s token"
|
||||
msgid "workspace.versions.tab.history"
|
||||
msgstr "History"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.edit-token"
|
||||
msgstr "Edit token"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.resolved-value"
|
||||
msgstr "Resolved value: "
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.token-name"
|
||||
msgstr "Name"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.enter-token-name"
|
||||
msgstr "Enter %s token name"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.token-value"
|
||||
msgstr "Value"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.enter-token-value"
|
||||
msgstr "Enter token value or alias"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.token-description"
|
||||
msgstr "Description"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.enter-token-description"
|
||||
msgstr "Add a description (optional)"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.original-value"
|
||||
msgstr "Original value: "
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.no-themes"
|
||||
msgstr "There are no themes."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.create-one"
|
||||
msgstr "Create one."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.add set"
|
||||
msgstr "Add set"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.save-theme"
|
||||
msgstr "Save theme"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.create-theme-title"
|
||||
msgstr "Create theme"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.edit-theme-title"
|
||||
msgstr "Edit theme"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.delete-theme-title"
|
||||
msgstr "Delete theme"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.no-themes-currently"
|
||||
msgstr "You currently have no themes."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.create-new-theme"
|
||||
msgstr "Create your first theme now."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.new-theme"
|
||||
msgstr "New theme"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.themes"
|
||||
msgstr "Themes"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.theme-name"
|
||||
msgstr "Theme %s"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.no-sets"
|
||||
msgstr "No sets"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.num-sets"
|
||||
msgstr "%s sets"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.back-to-themes"
|
||||
msgstr "Back to theme list"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/theme_select.cljs
|
||||
msgid "workspace.token.edit-themes"
|
||||
msgstr "Edit themes"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/theme_select.cljs
|
||||
msgid "workspace.token.no-active-theme"
|
||||
msgstr "No theme active"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/theme_select.cljs
|
||||
msgid "workspace.token.active-themes"
|
||||
msgstr "%s active themes"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.grouping-set-alert"
|
||||
msgstr "Token Set grouping is not supported yet."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.select-set"
|
||||
msgstr "Select set."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.set-selection-theme"
|
||||
msgstr "Define what token sets should be used as part of this theme option:"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.no-sets-yet"
|
||||
msgstr "There are no sets yet."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.no-sets-create"
|
||||
msgstr "There are no sets defined yet. Create one first."
|
||||
|
||||
msgid "workspace.versions.button.save"
|
||||
msgstr "Save version"
|
||||
|
||||
msgid "workspace.versions.button.pin"
|
||||
msgstr "Pin version"
|
||||
|
||||
msgid "workspace.versions.button.restore"
|
||||
msgstr "Restore version"
|
||||
|
||||
msgid "workspace.versions.empty"
|
||||
msgstr "There are no versions yet"
|
||||
|
||||
msgid "workspace.versions.autosaved.version"
|
||||
msgstr "Autosaved %s"
|
||||
|
||||
msgid "workspace.versions.autosaved.entry"
|
||||
msgstr "%s autosave versions"
|
||||
|
||||
msgid "workspace.versions.loading"
|
||||
msgstr "Loading..."
|
||||
|
||||
msgid "workspace.versions.filter.label"
|
||||
msgstr "Versions filter"
|
||||
|
||||
msgid "workspace.versions.filter.all"
|
||||
msgstr "All versions"
|
||||
|
||||
msgid "workspace.versions.filter.mine"
|
||||
msgstr "My versions"
|
||||
|
||||
msgid "workspace.versions.filter.user"
|
||||
msgstr "%s's versions"
|
||||
|
||||
msgid "workspace.versions.restore-warning"
|
||||
msgstr "Do you want to restore this version?"
|
||||
|
||||
msgid "workspace.versions.snapshot-menu"
|
||||
msgstr "Open snapshot menu"
|
||||
|
||||
msgid "workspace.versions.version-menu"
|
||||
msgstr "Open version menu"
|
||||
|
||||
msgid "workspace.versions.expand-snapshot"
|
||||
msgstr "Expand snapshots"
|
||||
msgid "workspace.versions.tab.actions"
|
||||
msgstr "Actions"
|
||||
|
|
|
@ -402,6 +402,9 @@ msgstr "Añadir como Biblioteca Compartida"
|
|||
msgid "dashboard.show-version-history"
|
||||
msgstr "Histórico de versiones"
|
||||
|
||||
msgid "dashboard.create-version-menu"
|
||||
msgstr "Guardar esta versión"
|
||||
|
||||
#: src/app/main/ui/settings/profile.cljs:72
|
||||
msgid "dashboard.change-email"
|
||||
msgstr "Cambiar correo"
|
||||
|
@ -6561,186 +6564,8 @@ msgstr "Abrir menu de versiones"
|
|||
msgid "workspace.viewport.click-to-close-path"
|
||||
msgstr "Pulsar para cerrar la ruta"
|
||||
|
||||
msgid "errors.maximum-invitations-by-request-reached"
|
||||
msgstr "Se ha alcanzado el número máximo (%s) de correos electrónicos que se pueden invitar en una sola solicitud"
|
||||
msgid "workspace.versions.tab.history"
|
||||
msgstr "Histórico"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.create-token"
|
||||
msgstr "Crear un token de %s"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.edit-token"
|
||||
msgstr "Editar token"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.resolved-value"
|
||||
msgstr "Valor resuelto: "
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.token-name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.enter-token-name"
|
||||
msgstr "Introduce un nombre para el token %s"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.token-value"
|
||||
msgstr "Valor"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.enter-token-value"
|
||||
msgstr "Introduce un valor o alias"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.token-description"
|
||||
msgstr "Descripción"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs
|
||||
msgid "workspace.token.enter-token-description"
|
||||
msgstr "Añade una Descripción (opcional)"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.original-value"
|
||||
msgstr "Valor original: "
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.no-themes"
|
||||
msgstr "No hay temas."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.create-one"
|
||||
msgstr "Crear uno."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sidebar.cljs
|
||||
msgid "workspace.token.add set"
|
||||
msgstr "Añadir set"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.save-theme"
|
||||
msgstr "Guardar tema"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.create-theme-title"
|
||||
msgstr "Crear tema"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.edit-theme-title"
|
||||
msgstr "Editar tema"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.delete-theme-title"
|
||||
msgstr "Borrar theme"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.no-themes-currently"
|
||||
msgstr "Actualmente no existen temas."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.create-new-theme"
|
||||
msgstr "Crea un nuevo tema ahora."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.new-theme"
|
||||
msgstr "Nuevo tema"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.themes"
|
||||
msgstr "Temas"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.theme-name"
|
||||
msgstr "Tema %s"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.no-sets"
|
||||
msgstr "No hay sets"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.num-sets"
|
||||
msgstr "%s sets"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.back-to-themes"
|
||||
msgstr "Volver al listado de temas"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/theme_select.cljs
|
||||
msgid "workspace.token.edit-themes"
|
||||
msgstr "Editar temas"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/theme_select.cljs
|
||||
msgid "workspace.token.no-active-theme"
|
||||
msgstr "No hay temas activos"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/theme_select.cljs
|
||||
msgid "workspace.token.active-themes"
|
||||
msgstr "%s temas activos"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.grouping-set-alert"
|
||||
msgstr "La agrupación de sets aun no está soportada."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.select-set"
|
||||
msgstr "Selecciona set"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.set-selection-theme"
|
||||
msgstr "Define que sets de tokens deberian formar parte de este tema:"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.no-sets"
|
||||
msgstr "Aun no hay sets."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.create-one"
|
||||
msgstr "Crea uno."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||
msgid "workspace.token.no-sets-create"
|
||||
msgstr "Aun no hay sets definidos. Crea uno primero"
|
||||
|
||||
msgid "workspace.versions.button.save"
|
||||
msgstr "Guardar versión"
|
||||
|
||||
msgid "workspace.versions.button.pin"
|
||||
msgstr "Fijar versión"
|
||||
|
||||
msgid "workspace.versions.button.restore"
|
||||
msgstr "Restaurar versión"
|
||||
|
||||
msgid "workspace.versions.empty"
|
||||
msgstr "No hay versiones aún"
|
||||
|
||||
msgid "workspace.versions.autosaved.version"
|
||||
msgstr "Autoguardado %s"
|
||||
|
||||
msgid "workspace.versions.autosaved.entry"
|
||||
msgstr "%s versiones de autoguardado"
|
||||
|
||||
msgid "workspace.versions.loading"
|
||||
msgstr "Cargando..."
|
||||
|
||||
msgid "workspace.versions.filter.label"
|
||||
msgstr "Filtro de versiones"
|
||||
|
||||
msgid "workspace.versions.filter.all"
|
||||
msgstr "Todas las versiones"
|
||||
|
||||
msgid "workspace.versions.filter.mine"
|
||||
msgstr "Mis versiones"
|
||||
|
||||
msgid "workspace.versions.filter.user"
|
||||
msgstr "Versiones de %s"
|
||||
|
||||
msgid "workspace.versions.restore-warning"
|
||||
msgstr "¿Quieres restaurar esta versión?"
|
||||
|
||||
msgid "workspace.versions.snapshot-menu"
|
||||
msgstr "Abrir menu de versiones"
|
||||
|
||||
msgid "workspace.versions.version-menu"
|
||||
msgstr "Abrir menu de versiones"
|
||||
|
||||
msgid "workspace.versions.expand-snapshot"
|
||||
msgstr "Expandir versiones"
|
||||
msgid "workspace.versions.tab.actions"
|
||||
msgstr "Acciones"
|
||||
|
|
Loading…
Reference in a new issue