mirror of
https://github.com/penpot/penpot.git
synced 2025-01-21 06:02:32 -05:00
Merge branch 'astudentinearth-astudentinearth-change-radius-tooltips' into staging
This commit is contained in:
commit
af114ee9d0
29 changed files with 457 additions and 75 deletions
18
CHANGES.md
18
CHANGES.md
|
@ -1,5 +1,22 @@
|
|||
# CHANGELOG
|
||||
|
||||
## 1.20.0
|
||||
|
||||
### :boom: Breaking changes & Deprecations
|
||||
|
||||
### :sparkles: New features
|
||||
|
||||
- Add support for local caching of google fonts (this avoids exposing
|
||||
the final user IP to goolge and reduces the amount of request sent
|
||||
to google)
|
||||
|
||||
### :bug: Bugs fixed
|
||||
|
||||
### :arrow_up: Deps updates
|
||||
|
||||
### :heart: Community contributions by (Thank you!)
|
||||
|
||||
|
||||
## 1.19.0
|
||||
|
||||
### :boom: Breaking changes & Deprecations
|
||||
|
@ -39,6 +56,7 @@
|
|||
- Open project in new tab from workspace (by @akshay-gupta7) [Github #3246](https://github.com/penpot/penpot/pull/3246)
|
||||
- Distribute fix enabled when two elements were selected (by @dfelinto) [Github #3266](https://github.com/penpot/penpot/pull/3266)
|
||||
- Distribute vertical spacing failing for overlapped text (by @dfelinto) [Github #3267](https://github.com/penpot/penpot/pull/3267)
|
||||
- bug Change independent corner radius input tooltips #3332 (by @astudentinearth) [Github #3332](https://github.com/penpot/penpot/pull/3332)
|
||||
|
||||
## 1.18.6
|
||||
|
||||
|
|
|
@ -273,16 +273,13 @@
|
|||
(binding [pmap/*tracked* (atom {})]
|
||||
(let [data (ctf/migrate-to-components-v2 data)
|
||||
features (conj features "components/v2")
|
||||
modified-at (dt/now)
|
||||
features' (db/create-array conn "text" features)]
|
||||
(db/update! conn :file
|
||||
{:data (blob/encode data)
|
||||
:modified-at modified-at
|
||||
:features features'}
|
||||
{:id id})
|
||||
(persist-pointers! conn id)
|
||||
(-> file
|
||||
(assoc :modified-at modified-at)
|
||||
(assoc :features features)
|
||||
(assoc :data data))))
|
||||
file)]
|
||||
|
|
|
@ -3,10 +3,10 @@ LABEL maintainer="Andrey Antukh <niwi@niwi.nz>"
|
|||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ENV NODE_VERSION=v18.15.0 \
|
||||
CLOJURE_VERSION=1.11.1.1257 \
|
||||
CLJKONDO_VERSION=2023.03.17 \
|
||||
BABASHKA_VERSION=1.3.176 \
|
||||
ENV NODE_VERSION=v18.16.1 \
|
||||
CLOJURE_VERSION=1.11.1.1347 \
|
||||
CLJKONDO_VERSION=2023.05.26 \
|
||||
BABASHKA_VERSION=1.3.181 \
|
||||
LANG=en_US.UTF-8 \
|
||||
LC_ALL=en_US.UTF-8
|
||||
|
||||
|
@ -104,16 +104,12 @@ RUN set -eux; \
|
|||
ARCH="$(dpkg --print-architecture)"; \
|
||||
case "${ARCH}" in \
|
||||
aarch64|arm64) \
|
||||
ESUM='1c4be9aa173cb0deb0d215643d9509c8900e5497290b29eee4bee335fa57984f'; \
|
||||
BINARY_URL='https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_aarch64_linux_hotspot_19.0.2_7.tar.gz'; \
|
||||
;; \
|
||||
armhf|armv7l) \
|
||||
ESUM='6a51cb3868b5a3b81848a0d276267230ff3f8639f20ba9ae9ef1d386440bf1fd'; \
|
||||
BINARY_URL='https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_arm_linux_hotspot_19.0.2_7.tar.gz'; \
|
||||
ESUM='b16c0271899de1f0e277dc0398bfff11b54511765f104fa938929ac484dc926d'; \
|
||||
BINARY_URL='https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.1%2B9/OpenJDK20U-jdk_aarch64_linux_hotspot_20.0.1_9.tar.gz'; \
|
||||
;; \
|
||||
amd64|x86_64) \
|
||||
ESUM='3a3ba7a3f8c3a5999e2c91ea1dca843435a0d1c43737bd2f6822b2f02fc52165'; \
|
||||
BINARY_URL='https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_x64_linux_hotspot_19.0.2_7.tar.gz'; \
|
||||
ESUM='43ad054f135a7894dc87ad5d10ad45d8e82846186515892acdbc17c2c5cd27e4'; \
|
||||
BINARY_URL='https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.1%2B9/OpenJDK20U-jdk_x64_linux_hotspot_20.0.1_9.tar.gz'; \
|
||||
;; \
|
||||
*) \
|
||||
echo "Unsupported arch: ${ARCH}"; \
|
||||
|
|
|
@ -40,7 +40,10 @@ http {
|
|||
'' close;
|
||||
}
|
||||
|
||||
# include /etc/nginx/sites-enabled/*;
|
||||
proxy_cache_path /tmp/cache/ levels=2:2 keys_zone=penpot:20m;
|
||||
proxy_cache_methods GET HEAD;
|
||||
proxy_cache_valid any 48h;
|
||||
proxy_cache_key "$host$request_uri";
|
||||
|
||||
server {
|
||||
listen 3449 default_server;
|
||||
|
@ -99,6 +102,53 @@ http {
|
|||
proxy_buffering off;
|
||||
}
|
||||
|
||||
location /internal/gfonts/css {
|
||||
proxy_pass https://fonts.googleapis.com/css?$args;
|
||||
proxy_hide_header Access-Control-Allow-Origin;
|
||||
proxy_hide_header Cross-Origin-Resource-Policy;
|
||||
proxy_hide_header Link;
|
||||
proxy_hide_header Alt-Svc;
|
||||
proxy_hide_header Cache-Control;
|
||||
proxy_hide_header Expires;
|
||||
|
||||
proxy_ignore_headers Set-Cookie Vary Cache-Control Expires;
|
||||
|
||||
proxy_set_header User-Agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36";
|
||||
proxy_set_header Host "fonts.googleapis.com";
|
||||
proxy_set_header Accept "*/*";
|
||||
|
||||
proxy_cache penpot;
|
||||
|
||||
add_header Access-Control-Allow-Origin $http_origin;
|
||||
add_header Cache-Control max-age=86400;
|
||||
add_header X-Cache-Status $upstream_cache_status;
|
||||
}
|
||||
|
||||
location ~ ^/internal/gfonts/font/(?<font_file>.+) {
|
||||
proxy_pass https://fonts.gstatic.com/s/$font_file;
|
||||
|
||||
proxy_hide_header Access-Control-Allow-Origin;
|
||||
proxy_hide_header Cross-Origin-Resource-Policy;
|
||||
proxy_hide_header Link;
|
||||
proxy_hide_header Alt-Svc;
|
||||
proxy_hide_header Cache-Control;
|
||||
proxy_hide_header Expires;
|
||||
proxy_hide_header Cross-Origin-Opener-Policy;
|
||||
proxy_hide_header Report-To;
|
||||
|
||||
proxy_ignore_headers Set-Cookie Vary Cache-Control Expires;
|
||||
|
||||
proxy_set_header User-Agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36";
|
||||
proxy_set_header Host "fonts.gstatic.com";
|
||||
proxy_set_header Accept "*/*";
|
||||
|
||||
proxy_cache penpot;
|
||||
|
||||
add_header Access-Control-Allow-Origin $http_origin;
|
||||
add_header Cache-Control max-age=86400;
|
||||
add_header X-Cache-Status $upstream_cache_status;
|
||||
}
|
||||
|
||||
location /internal/assets {
|
||||
internal;
|
||||
alias /home/penpot/penpot/backend/assets;
|
||||
|
|
|
@ -45,6 +45,11 @@ http {
|
|||
'' close;
|
||||
}
|
||||
|
||||
proxy_cache_path /tmp/cache/ levels=2:2 keys_zone=penpot:20m;
|
||||
proxy_cache_methods GET HEAD;
|
||||
proxy_cache_valid any 48h;
|
||||
proxy_cache_key "$host$request_uri";
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
|
@ -88,6 +93,53 @@ http {
|
|||
error_page 301 302 307 = @handle_redirect;
|
||||
}
|
||||
|
||||
location /internal/gfonts/css {
|
||||
proxy_pass https://fonts.googleapis.com/css?$args;
|
||||
proxy_hide_header Access-Control-Allow-Origin;
|
||||
proxy_hide_header Cross-Origin-Resource-Policy;
|
||||
proxy_hide_header Link;
|
||||
proxy_hide_header Alt-Svc;
|
||||
proxy_hide_header Cache-Control;
|
||||
proxy_hide_header Expires;
|
||||
|
||||
proxy_ignore_headers Set-Cookie Vary Cache-Control Expires;
|
||||
|
||||
proxy_set_header User-Agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36";
|
||||
proxy_set_header Host "fonts.googleapis.com";
|
||||
proxy_set_header Accept "*/*";
|
||||
|
||||
proxy_cache penpot;
|
||||
|
||||
add_header Access-Control-Allow-Origin $http_origin;
|
||||
add_header Cache-Control max-age=86400;
|
||||
add_header X-Cache-Status $upstream_cache_status;
|
||||
}
|
||||
|
||||
location ~ ^/internal/gfonts/font/(?<font_file>.+) {
|
||||
proxy_pass https://fonts.gstatic.com/s/$font_file;
|
||||
|
||||
proxy_hide_header Access-Control-Allow-Origin;
|
||||
proxy_hide_header Cross-Origin-Resource-Policy;
|
||||
proxy_hide_header Link;
|
||||
proxy_hide_header Alt-Svc;
|
||||
proxy_hide_header Cache-Control;
|
||||
proxy_hide_header Expires;
|
||||
proxy_hide_header Cross-Origin-Opener-Policy;
|
||||
proxy_hide_header Report-To;
|
||||
|
||||
proxy_ignore_headers Set-Cookie Vary Cache-Control Expires;
|
||||
|
||||
proxy_set_header User-Agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36";
|
||||
proxy_set_header Host "fonts.gstatic.com";
|
||||
proxy_set_header Accept "*/*";
|
||||
|
||||
proxy_cache penpot;
|
||||
|
||||
add_header Access-Control-Allow-Origin $http_origin;
|
||||
add_header Cache-Control max-age=86400;
|
||||
add_header X-Cache-Status $upstream_cache_status;
|
||||
}
|
||||
|
||||
location /internal/assets {
|
||||
internal;
|
||||
alias /opt/data/assets;
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
[app.common.text :as txt]
|
||||
[app.config :as cf]
|
||||
[app.util.dom :as dom]
|
||||
[app.util.globals :as globals]
|
||||
[app.util.http :as http]
|
||||
[app.util.object :as obj]
|
||||
[beicon.core :as rx]
|
||||
[clojure.set :as set]
|
||||
[cuerdas.core :as str]
|
||||
[goog.events :as gev]
|
||||
[lambdaisland.uri :as u]
|
||||
[okulary.core :as l]
|
||||
[promesa.core :as p]))
|
||||
|
@ -91,37 +91,14 @@
|
|||
;; only know if the font is needed or not
|
||||
(defonce ^:dynamic loaded-hints (l/atom #{}))
|
||||
|
||||
(defn- create-link-element
|
||||
[uri]
|
||||
(let [node (.createElement js/document "link")]
|
||||
(unchecked-set node "href" uri)
|
||||
(unchecked-set node "rel" "stylesheet")
|
||||
(unchecked-set node "type" "text/css")
|
||||
node))
|
||||
|
||||
(defn- create-style-element
|
||||
[css]
|
||||
(let [node (.createElement js/document "style")]
|
||||
(unchecked-set node "innerHTML" css)
|
||||
node))
|
||||
|
||||
(defn- load-font-css!
|
||||
"Creates a link element and attaches it to the dom for correctly
|
||||
load external css resource."
|
||||
[url on-loaded]
|
||||
(let [node (create-link-element url)
|
||||
head (.-head ^js js/document)]
|
||||
(gev/listenOnce node "load" (fn [_]
|
||||
(when (fn? on-loaded)
|
||||
(on-loaded))))
|
||||
(dom/append-child! head node)))
|
||||
|
||||
(defn- add-font-css!
|
||||
"Creates a style element and attaches it to the dom."
|
||||
[css]
|
||||
(let [head (.-head ^js js/document)]
|
||||
(->> (create-style-element css)
|
||||
(dom/append-child! head))))
|
||||
[id css]
|
||||
(let [node (dom/create-element "style")]
|
||||
(dom/set-attribute! node "id" id)
|
||||
(dom/set-html! node css)
|
||||
(when-let [head (unchecked-get globals/document "head")]
|
||||
(dom/append-child! head node))))
|
||||
|
||||
;; --- LOADER: BUILTIN
|
||||
|
||||
|
@ -139,18 +116,35 @@
|
|||
|
||||
;; --- LOADER: GOOGLE
|
||||
|
||||
(defn generate-gfonts-url
|
||||
(defn- generate-gfonts-url
|
||||
[{:keys [family variants]}]
|
||||
(let [base (str "https://fonts.googleapis.com/css?family=" family)
|
||||
variants (str/join "," (map :id variants))]
|
||||
(str base ":" variants "&display=block")))
|
||||
(let [query (dm/str "family=" family ":"
|
||||
(str/join "," (map :id variants))
|
||||
"&display=block")]
|
||||
(dm/str
|
||||
(-> cf/public-uri
|
||||
(assoc :path "/internal/gfonts/css")
|
||||
(assoc :query query)))))
|
||||
|
||||
(defn- process-gfont-css
|
||||
[css]
|
||||
(let [base (dm/str (assoc cf/public-uri :path "/internal/gfonts/font"))]
|
||||
(str/replace css "https://fonts.gstatic.com/s" base)))
|
||||
|
||||
(defn- fetch-gfont-css
|
||||
[url]
|
||||
(->> (http/send! {:method :get :uri url :mode :cors :response-type :text})
|
||||
(rx/map :body)))
|
||||
|
||||
(defmethod load-font :google
|
||||
[{:keys [id ::on-loaded] :as font}]
|
||||
(when (exists? js/window)
|
||||
(log/info :hint "load-font" :font-id id :backend "google")
|
||||
(let [url (generate-gfonts-url font)]
|
||||
(load-font-css! url (partial on-loaded id))
|
||||
(->> (fetch-gfont-css url)
|
||||
(rx/map process-gfont-css)
|
||||
(rx/tap #(on-loaded id))
|
||||
(rx/subs (partial add-font-css! id)))
|
||||
nil)))
|
||||
|
||||
;; --- LOADER: CUSTOM
|
||||
|
@ -187,7 +181,7 @@
|
|||
(when (exists? js/window)
|
||||
(log/info :hint "load-font" :font-id id :backend "custom")
|
||||
(let [css (generate-custom-font-css font)]
|
||||
(add-font-css! css)
|
||||
(add-font-css! id css)
|
||||
(when (fn? on-loaded)
|
||||
(on-loaded)))))
|
||||
|
||||
|
@ -267,7 +261,6 @@
|
|||
"Given a font and the variant-id, retrieves the fontface CSS"
|
||||
[{:keys [font-id font-variant-id]
|
||||
:or {font-variant-id "regular"}}]
|
||||
|
||||
(let [{:keys [backend family] :as font} (get @fontsdb font-id)]
|
||||
(cond
|
||||
(nil? font)
|
||||
|
@ -275,10 +268,9 @@
|
|||
|
||||
(= :google backend)
|
||||
(let [variant (get-variant font font-variant-id)]
|
||||
(-> (generate-gfonts-url
|
||||
{:family family
|
||||
:variants [variant]})
|
||||
(http/fetch-text)))
|
||||
(->> (rx/of (generate-gfonts-url {:family family :variants [variant]}))
|
||||
(rx/mapcat fetch-gfont-css)
|
||||
(rx/map process-gfont-css)))
|
||||
|
||||
(= :custom backend)
|
||||
(let [variant (get-variant font font-variant-id)
|
||||
|
|
|
@ -62,9 +62,9 @@
|
|||
|
||||
(defn render
|
||||
"Renders a thumbnail."
|
||||
[{:keys [data styles] :as params}]
|
||||
[{:keys [data styles width] :as params}]
|
||||
(let [id (dm/str (uuid/next))
|
||||
payload #js {:data data :styles styles}
|
||||
payload #js {:data data :styles styles :width width}
|
||||
message #js {:id id
|
||||
:scope "penpot/thumbnail-renderer"
|
||||
:payload payload}]
|
||||
|
|
|
@ -62,7 +62,9 @@
|
|||
(rx/mapcat (fn [{:keys [fonts] :as result}]
|
||||
(->> (fonts/render-font-styles fonts)
|
||||
(rx/map (fn [styles]
|
||||
(assoc result :styles styles))))))
|
||||
(assoc result
|
||||
:styles styles
|
||||
:width 250))))))
|
||||
(rx/mapcat thr/render)
|
||||
(rx/mapcat (partial persist-thumbnail file-id revn)))))
|
||||
|
||||
|
|
|
@ -403,28 +403,28 @@
|
|||
|
||||
(= radius-mode :radius-4)
|
||||
[:*
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius")}
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius-top-left")}
|
||||
[:> numeric-input
|
||||
{:placeholder "--"
|
||||
:min 0
|
||||
:on-change on-radius-r1-change
|
||||
:value (:r1 values)}]]
|
||||
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius")}
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius-top-right")}
|
||||
[:> numeric-input
|
||||
{:placeholder "--"
|
||||
:min 0
|
||||
:on-change on-radius-r2-change
|
||||
:value (:r2 values)}]]
|
||||
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius")}
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius-bottom-right")}
|
||||
[:> numeric-input
|
||||
{:placeholder "--"
|
||||
:min 0
|
||||
:on-change on-radius-r3-change
|
||||
:value (:r3 values)}]]
|
||||
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius")}
|
||||
[:div.input-element.mini {:title (tr "workspace.options.radius-bottom-left")}
|
||||
[:> numeric-input
|
||||
{:placeholder "--"
|
||||
:min 0
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
(obj/set! image "onload" #(do
|
||||
(rx/push! subs image)
|
||||
(rx/end! subs)))
|
||||
|
||||
(obj/set! image "crossOrigin" "anonymous")
|
||||
(obj/set! image "onerror" #(rx/error! subs %))
|
||||
(obj/set! image "onabort" #(rx/error! subs (ex/error :type :internal
|
||||
|
@ -157,10 +156,10 @@
|
|||
|
||||
(defn- svg-prepare
|
||||
"Prepares an SVG for rendering (resolves images to Data URIs and adds intrinsic size)."
|
||||
[data styles]
|
||||
[data styles width]
|
||||
(let [svg (svg-parse data)]
|
||||
(->> (svg-resolve-all! svg styles)
|
||||
(rx/map #(svg-set-intrinsic-size! % 300))
|
||||
(rx/map #(svg-set-intrinsic-size! % width))
|
||||
(rx/map svg-stringify))))
|
||||
|
||||
(defn- bitmap->blob
|
||||
|
@ -182,13 +181,15 @@
|
|||
"Renders a thumbnail using it's SVG and returns an ArrayBuffer of the image."
|
||||
[payload]
|
||||
(let [data (unchecked-get payload "data")
|
||||
styles (unchecked-get payload "styles")]
|
||||
(->> (svg-prepare data styles)
|
||||
styles (unchecked-get payload "styles")
|
||||
width (d/nilv (unchecked-get payload "width") 300)]
|
||||
(->> (svg-prepare data styles width)
|
||||
(rx/map #(wapi/create-blob % "image/svg+xml"))
|
||||
(rx/map wapi/create-uri)
|
||||
(rx/mapcat (fn [uri]
|
||||
(->> (create-image uri)
|
||||
(rx/mapcat wapi/create-image-bitmap)
|
||||
(rx/mapcat #(wapi/create-image-bitmap % #js {:resizeWidth width
|
||||
:resizeQuality "medium"}))
|
||||
(rx/tap #(wapi/revoke-uri uri)))))
|
||||
(rx/mapcat bitmap->blob))))
|
||||
|
||||
|
|
|
@ -126,13 +126,15 @@
|
|||
[clipboard-data]
|
||||
(when clipboard-data
|
||||
(let [file-list (-> (.-files ^js clipboard-data))]
|
||||
(->> (range (.-length file-list))
|
||||
(map #(.item file-list %))
|
||||
(->> (range (.-length ^js file-list))
|
||||
(map #(.item ^js file-list %))
|
||||
(filter #(str/starts-with? (.-type %) "image/"))))))
|
||||
|
||||
(defn create-image-bitmap
|
||||
[image]
|
||||
(js/createImageBitmap image))
|
||||
([image]
|
||||
(js/createImageBitmap image))
|
||||
([image options]
|
||||
(js/createImageBitmap image options)))
|
||||
|
||||
(defn request-fullscreen
|
||||
[el]
|
||||
|
|
|
@ -3458,6 +3458,22 @@ msgstr "Tots els cantons"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Cantons individuals"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Superior esquerra"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Superior dreta"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Inferior esquerra"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Inferior dreta"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Recent"
|
||||
|
||||
|
|
|
@ -3525,6 +3525,22 @@ msgstr "Všechny rohy"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Jednotlivé rohy"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Nahoře vlevo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Nahoře vpravo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Dole vlevo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Dole vpravo"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Nedávné"
|
||||
|
||||
|
|
|
@ -3893,6 +3893,22 @@ msgstr "Alle Ecken"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Individuelle Ecken"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Oben links"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Oben rechts"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Unten links"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Unten rechts"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Aktuell"
|
||||
|
||||
|
|
|
@ -4025,6 +4025,22 @@ msgstr "All corners"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Independent corners"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Top left"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Top right"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Bottom left"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Bottom right"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Recent"
|
||||
|
||||
|
|
|
@ -4122,6 +4122,22 @@ msgstr "Todas las esquinas"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Esquinas individuales"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Arriba izquierda"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Arriba derecha"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Abajo izquierda"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Abajo derecha"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Recientes"
|
||||
|
||||
|
|
|
@ -3635,6 +3635,22 @@ msgstr "Ertz guztiak"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Ertz bakarrak"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Goian ezkerrean"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Goian eskuman"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Behean ezkerrean"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Behean eskuman"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Azkenak"
|
||||
|
||||
|
|
|
@ -3479,6 +3479,22 @@ msgstr "Tous les coins"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Coins individuels"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "En haut à gauche"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "En haut à droite"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "En bas à gauche"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "En bas à droite"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs
|
||||
msgid "workspace.options.retry"
|
||||
msgstr "Réessayer"
|
||||
|
|
|
@ -3830,6 +3830,22 @@ msgstr "כל הפינות"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "פינות עצמאיות"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "בראש משמאל"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "בראש מימין"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "בתחתית משמאל"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "בתחתית מימין"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "אחרונים"
|
||||
|
||||
|
|
|
@ -3645,6 +3645,22 @@ msgstr "Svi kutevi"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Jednostruki kutovi"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Gore lijevo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Gore desno"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Dolje lijevo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Dolje desno"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Nedavni"
|
||||
|
||||
|
|
|
@ -3780,6 +3780,22 @@ msgstr "Semua sudut"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Sudut individu"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Kiri atas"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Kanan atas"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Kiri bawah"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Kanan bawah"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Terkini"
|
||||
|
||||
|
|
|
@ -3815,6 +3815,22 @@ msgstr "Visi stūri"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Atsevišķie stūri"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Augšā pa kreisi"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Augšā pa labi"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Apakšā pa kreisi"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Apakšā pa labi"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Pēdējie"
|
||||
|
||||
|
|
|
@ -3842,6 +3842,22 @@ msgstr "Wszystkie rogi"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Poszczególne narożniki"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Górne lewo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Górne prawo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Dolne lewo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Dolne prawo"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Bieżące"
|
||||
|
||||
|
|
|
@ -3782,6 +3782,22 @@ msgstr "Todos os cantos"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Cantos individuais"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Superior (a esquerda)"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Superior (a direita)"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Inferior esquerdo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Inferior direito"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Recente"
|
||||
|
||||
|
|
|
@ -3632,6 +3632,22 @@ msgstr "Todos os cantos"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Cantos individuais"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Superior esquerdo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Superior direito"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Inferior esquerdo"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Inferior direito"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Recente"
|
||||
|
||||
|
|
|
@ -3807,6 +3807,22 @@ msgstr "Toate colţurile"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Colțuri individuale"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Stânga sus"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Dreapta sus"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Stânga jos"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Dreapta jos"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Recente"
|
||||
|
||||
|
|
|
@ -3957,6 +3957,22 @@ msgstr "Tüm köşeler"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "Bireysel köşeler"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "Sol üst"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "Sağ üst"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "Sol alt"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "Sağ alt"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "Son kullanılanlar"
|
||||
|
||||
|
|
|
@ -3668,6 +3668,22 @@ msgstr "所有角"
|
|||
msgid "workspace.options.radius.single-corners"
|
||||
msgstr "单个角"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-left"
|
||||
msgstr "左上角"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-top-right"
|
||||
msgstr "右上角"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-left"
|
||||
msgstr "左下角"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
|
||||
msgid "workspace.options.radius-bottom-right"
|
||||
msgstr "右下角"
|
||||
|
||||
msgid "workspace.options.recent-fonts"
|
||||
msgstr "最近的"
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
1.19.0
|
||||
1.20.0
|
||||
|
|
Loading…
Add table
Reference in a new issue